diff --git a/.github/actions/run_tests/action.yaml b/.github/actions/run_tests/action.yaml index 79c99964..490a00c4 100644 --- a/.github/actions/run_tests/action.yaml +++ b/.github/actions/run_tests/action.yaml @@ -11,7 +11,7 @@ runs: shell: bash - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} allow-prereleases: true @@ -21,7 +21,7 @@ runs: shell: bash - name: poetry cache # Change CACHE_STRING secret to bust the cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: .venv key: ${{ runner.os }}-${{ hashFiles('poetry.lock') }}-${{ env.PYTHON_FULL_VERSION }}-${{ inputs.cache-string }} @@ -34,7 +34,7 @@ runs: echo '::endgroup::' echo '::group::Other dependencies' - poetry install --remove-untracked + poetry sync echo '::endgroup::' echo 'DEPS_INSTALLED=true' >> $GITHUB_ENV diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index ff40de92..3f5fe714 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -39,7 +39,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} @@ -50,13 +50,13 @@ jobs: run: echo "PYTHON_FULL_VERSION=$(python --version)" >> "$GITHUB_ENV" - name: poetry cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: .venv key: ${{ runner.os }}-${{ hashFiles('poetry.lock') }}-${{ env.PYTHON_FULL_VERSION }}-${{ secrets.CACHE_STRING }} - name: npm cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: node_modules key: ${{ runner.os }}-pa11y-v3 @@ -65,7 +65,7 @@ jobs: run: | pip install poetry poetry config --local virtualenvs.in-project true - poetry install --no-root --remove-untracked + poetry sync --no-root npm install echo "node_modules/.bin" >> "$GITHUB_PATH" diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index f663b7e7..f8e203b2 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -19,11 +19,6 @@ on: type: boolean required: true default: true - include_brew: - description: 'Publish to Homebrew?' - type: boolean - required: true - default: true jobs: validate: @@ -66,9 +61,9 @@ jobs: echo "JRNL_VERSION=$JRNL_VERSION" >> "$GITHUB_ENV" - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.13' - name: Checkout repo uses: actions/checkout@v4 @@ -112,111 +107,3 @@ jobs: run: | pypi_version="$(find dist/jrnl-*.tar.gz | sed -r 's!dist/jrnl-(.*)\.tar\.gz!\1!')" echo "pypi_version=$pypi_version" >> "$GITHUB_OUTPUT" - - release_homebrew: - if: ${{ github.event.inputs.include_brew == 'true' }} - needs: release_pypi - name: "Release to Homebrew" - runs-on: macos-latest - env: - HOMEBREW_NO_AUTO_UPDATE: 1 - HOMEBREW_NO_INSTALL_CLEANUP: 1 - HOME_REPO: ${{ secrets.HOME_REPO }} - steps: - - name: Get version - run: | - JRNL_VERSION="${{ github.event.inputs.version }}" - PYPI_VERSION="${{ needs.release_pypi.outputs.pypi_version }}" - - echo "::debug::jrnl version: $JRNL_VERSION" - echo "::debug::pypi version: $PYPI_VERSION" - - echo "JRNL_VERSION=$JRNL_VERSION" >> "$GITHUB_ENV" - echo "PYPI_VERSION=$PYPI_VERSION" >> "$GITHUB_ENV" - - - name: Set env variables - env: - REPO_OWNER: ${{ github.repository_owner }} - run: | - if [[ $JRNL_VERSION =~ (alpha|beta) ]]; then - echo '::debug::Prerelease (not a full release)' - { - echo "RELEASE_TYPE=pre" - echo "FORMULA_REPO=${REPO_OWNER}/homebrew-prerelease" - echo "BOT_REPO=jrnl-bot/homebrew-prerelease" - echo "FORMULA_NAME=jrnl-beta" - } >> "$GITHUB_ENV" - else - echo '::debug::Full release (not a prerelease)' - if [[ "${{ github.repository }}" == "${HOME_REPO}" ]]; then - REPO_OWNER="homebrew" - fi - { - echo "RELEASE_TYPE=full" - echo "FORMULA_REPO=${REPO_OWNER}/homebrew-core" - echo "BOT_REPO=jrnl-bot/homebrew-core" - echo "FORMULA_NAME=jrnl" - } >> "$GITHUB_ENV" - fi - - - name: Tap formula - run: | - brew tap "${FORMULA_REPO}" - echo '::debug::Set tap directory' - echo "BREW_TAP_DIRECTORY=$(brew --repo "${FORMULA_REPO}")" >> "$GITHUB_ENV" - - name: Install dependencies - run: brew install pipgrip - - - name: Query PyPI API - uses: nick-invision/retry@v2 - with: - timeout_seconds: 10 - max_attempts: 30 - retry_wait_seconds: 10 - command: | - curl -Ls https://pypi.org/pypi/jrnl/json > api_response.json - # if query doesn't have our version yet, give it some time before trying again - if [[ "null" == "$(jq ".releases[\"${PYPI_VERSION}\"][1].url" -r api_response.json)" ]]; then - echo "::debug::PYPI_VERSION: $PYPI_VERSION" - echo "::debug::JQ VALUE: $(jq ".releases[\"${PYPI_VERSION}\"][1].url" -r api_response.json)" - echo "::group::cat api_response.json" - cat api_response.json - echo "::endgroup::" - exit 1 - fi - - - name: Update Homebrew Formula - uses: nick-invision/retry@v2 - with: - timeout_minutes: 8 - max_attempts: 6 - retry_wait_seconds: 30 - command: > - brew bump-formula-pr "${FORMULA_NAME}" - --url $(jq ".releases[\"${PYPI_VERSION}\"][1].url" -r api_response.json) - --sha256 $(jq ".releases[\"${PYPI_VERSION}\"][1].digests.sha256" -r api_response.json) - --no-audit - --write-only - --force - - - name: Create Pull Request - uses: peter-evans/create-pull-request@v5 - with: - path: ${{ env.BREW_TAP_DIRECTORY }} - token: ${{ secrets.JRNL_BOT_TOKEN }} - push-to-fork: ${{ env.BOT_REPO }} - - committer: ${{ secrets.JRNL_BOT_NAME }} <${{ secrets.JRNL_BOT_EMAIL }}> - author: ${{ secrets.JRNL_BOT_NAME }} <${{ secrets.JRNL_BOT_EMAIL }}> - - title: jrnl ${{ env.JRNL_VERSION }} - body: Created with `brew bump-formula-pr` - - branch: jrnl-${{ env.JRNL_VERSION }}-- - branch-suffix: random - commit-message: | - jrnl ${{ env.JRNL_VERSION }} - - Update jrnl to ${{ env.JRNL_VERSION }} - - ${{ secrets.RELEASE_COAUTHORS }} diff --git a/.github/workflows/testing_prs.yaml b/.github/workflows/testing_prs.yaml index 8e20d35c..42a3f86f 100644 --- a/.github/workflows/testing_prs.yaml +++ b/.github/workflows/testing_prs.yaml @@ -37,7 +37,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [ '3.10', '3.11', '3.12' ] + python-version: [ '3.10', '3.11', '3.12', '3.13' ] os: [ ubuntu-latest, macos-latest, windows-latest ] steps: - run: git config --global core.autocrlf false diff --git a/.github/workflows/testing_schedule.yaml b/.github/workflows/testing_schedule.yaml index 6f3ab6f6..9791349c 100644 --- a/.github/workflows/testing_schedule.yaml +++ b/.github/workflows/testing_schedule.yaml @@ -17,7 +17,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [ '3.10', '3.11', '3.12' ] + python-version: [ '3.10', '3.11', '3.12', '3.13' ] os: [ ubuntu-latest, macos-latest, windows-latest ] steps: - run: git config --global core.autocrlf false diff --git a/CHANGELOG.md b/CHANGELOG.md index e1a30a58..ba714328 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,23 +2,111 @@ ## [Unreleased](https://github.com/jrnl-org/jrnl/) -[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v4.1-beta...HEAD) +[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v4.2.1...HEAD) **Fixed bugs:** -- Update from `4.0.1\_4` to `4.0.1\_5` broke something with colors [\#1819](https://github.com/jrnl-org/jrnl/issues/1819) - -## [v4.1-beta](https://pypi.org/project/jrnl/v4.1-beta/) (2023-10-29) - -[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v4.0.1...v4.1-beta) - -**Implemented enhancements:** - -- Add Python 3.12 support [\#1750](https://github.com/jrnl-org/jrnl/issues/1750) +- poetry warning - "poetry.dev-dependencies" section is deprecated [\#1975](https://github.com/jrnl-org/jrnl/issues/1975) +- Homebrew autobump error on jrnl release [\#1961](https://github.com/jrnl-org/jrnl/issues/1961) **Build:** -- Linting rules aren't enforced the same as format rules [\#1742](https://github.com/jrnl-org/jrnl/issues/1742) +- Remove release step to publish to Homebrew [\#1994](https://github.com/jrnl-org/jrnl/pull/1994) ([micahellison](https://github.com/micahellison)) + +**Packaging:** + +- Update dependency rich to v14 [\#1989](https://github.com/jrnl-org/jrnl/pull/1989) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency python to 3.13 [\#1988](https://github.com/jrnl-org/jrnl/pull/1988) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency tox to v4.25.0 [\#1986](https://github.com/jrnl-org/jrnl/pull/1986) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency tzlocal to v5.3.1 [\#1984](https://github.com/jrnl-org/jrnl/pull/1984) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency jinja2 to v3.1.6 [\#1983](https://github.com/jrnl-org/jrnl/pull/1983) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency poethepoet to v0.33.1 [\#1982](https://github.com/jrnl-org/jrnl/pull/1982) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency pytest to v8.3.5 [\#1981](https://github.com/jrnl-org/jrnl/pull/1981) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency cryptography to v44.0.2 [\#1980](https://github.com/jrnl-org/jrnl/pull/1980) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency ruff to v0.11.3 [\#1978](https://github.com/jrnl-org/jrnl/pull/1978) ([renovate[bot]](https://github.com/apps/renovate)) + +## [v4.2.1](https://pypi.org/project/jrnl/v4.2.1/) (2025-02-25) + +[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v4.2...v4.2.1) + +**Documentation:** + +- Typing animation in landing page is broken [\#1969](https://github.com/jrnl-org/jrnl/issues/1969) + +**Packaging:** + +- Update dependency pytest to \>=8.1.1 [\#1974](https://github.com/jrnl-org/jrnl/pull/1974) ([wren](https://github.com/wren)) +- Update dependency black to v25 [\#1973](https://github.com/jrnl-org/jrnl/pull/1973) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency tzlocal to v5.3 [\#1972](https://github.com/jrnl-org/jrnl/pull/1972) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency ruamel.yaml to v0.18.10 [\#1967](https://github.com/jrnl-org/jrnl/pull/1967) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency jinja2 to v3.1.5 [\#1966](https://github.com/jrnl-org/jrnl/pull/1966) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency cryptography to v44 [\#1962](https://github.com/jrnl-org/jrnl/pull/1962) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency pytest-bdd to v8.1.0 [\#1952](https://github.com/jrnl-org/jrnl/pull/1952) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency poethepoet to v0.32.2 [\#1951](https://github.com/jrnl-org/jrnl/pull/1951) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency keyring to v25.6.0 [\#1948](https://github.com/jrnl-org/jrnl/pull/1948) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency ruff to v0.9.7 [\#1947](https://github.com/jrnl-org/jrnl/pull/1947) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency rich to v13.9.4 [\#1946](https://github.com/jrnl-org/jrnl/pull/1946) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency tox to v4.24.1 [\#1945](https://github.com/jrnl-org/jrnl/pull/1945) ([renovate[bot]](https://github.com/apps/renovate)) + +## [v4.2](https://pypi.org/project/jrnl/v4.2/) (2024-11-17) + +[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v4.2-beta...v4.2) + +**Implemented enhancements:** + +- Add Python 3.13 support [\#1893](https://github.com/jrnl-org/jrnl/issues/1893) +- Add calendar heatmap display format [\#1759](https://github.com/jrnl-org/jrnl/pull/1759) ([alichtman](https://github.com/alichtman)) + +**Fixed bugs:** + +- -contains doesn't accept multiple search terms, doesn't work with -and [\#1877](https://github.com/jrnl-org/jrnl/issues/1877) +- Tests failing on develop branch starting with pytest-bdd 7.1.2 [\#1875](https://github.com/jrnl-org/jrnl/issues/1875) +- Ignore color when used in a pipeline [\#1839](https://github.com/jrnl-org/jrnl/issues/1839) +- Fix -contains to allow multiple terms with "OR" logic unless -and is added [\#1890](https://github.com/jrnl-org/jrnl/pull/1890) ([eigenric](https://github.com/eigenric)) + +**Documentation:** + +- Recommend pipx as default installation method [\#1888](https://github.com/jrnl-org/jrnl/issues/1888) +- Remove documentation recommendation to install pipx through brew or pip [\#1886](https://github.com/jrnl-org/jrnl/issues/1886) +- Document security risks of using a computer that someone else has admin access to [\#1793](https://github.com/jrnl-org/jrnl/issues/1793) +- Recommend pipx as easiest installation method for all OSes and remove warning about apt [\#1889](https://github.com/jrnl-org/jrnl/pull/1889) ([micahellison](https://github.com/micahellison)) +- Docs accessibility checker failure - contrast ratio [\#1934](https://github.com/jrnl-org/jrnl/issues/1934) +- Docs accessibility test runner failing [\#1932](https://github.com/jrnl-org/jrnl/issues/1932) + +**Packaging:** + +- Update actions/cache action to v4 [\#1847](https://github.com/jrnl-org/jrnl/pull/1847) ([renovate[bot]](https://github.com/apps/renovate)) +- Update actions/setup-python action to v5 [\#1848](https://github.com/jrnl-org/jrnl/pull/1848) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency black to v24.8.0 [\#1923](https://github.com/jrnl-org/jrnl/pull/1923) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency cryptography to v43.0.3 [\#1942](https://github.com/jrnl-org/jrnl/pull/1942) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency jinja2 to v3.1.4 [\#1892](https://github.com/jrnl-org/jrnl/pull/1892) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency keyring to v25.4.1 [\#1924](https://github.com/jrnl-org/jrnl/pull/1924) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency mkdocs to v1.6.1 [\#1895](https://github.com/jrnl-org/jrnl/pull/1895) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency pa11y-ci to v3.1.0 [\#1831](https://github.com/jrnl-org/jrnl/pull/1831) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency parse-type to v0.6.4 [\#1936](https://github.com/jrnl-org/jrnl/pull/1936) ([renovate[bot]](https://github.com/apps/renovate)) +- Update peter-evans/create-pull-request action to v7 [\#1929](https://github.com/jrnl-org/jrnl/pull/1929) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency poethepoet to v0.29.0 [\#1925](https://github.com/jrnl-org/jrnl/pull/1925) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency pytest to v7.4.4 [\#1845](https://github.com/jrnl-org/jrnl/pull/1845) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency pytest-bdd to v7.3.0 [\#1896](https://github.com/jrnl-org/jrnl/pull/1896) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency pytest-xdist to v3.6.1 [\#1897](https://github.com/jrnl-org/jrnl/pull/1897) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency python-dateutil to v2.9.0 [\#1898](https://github.com/jrnl-org/jrnl/pull/1898) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency requests to v2.32.3 [\#1899](https://github.com/jrnl-org/jrnl/pull/1899) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency rich to v13.9.2 [\#1937](https://github.com/jrnl-org/jrnl/pull/1937) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency ruamel.yaml to v0.18.6 [\#1855](https://github.com/jrnl-org/jrnl/pull/1855) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency ruff to v0.7.0 [\#1938](https://github.com/jrnl-org/jrnl/pull/1938) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency tox to v4.23.0 [\#1935](https://github.com/jrnl-org/jrnl/pull/1935) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency typed.js to v2.1.0 [\#1861](https://github.com/jrnl-org/jrnl/pull/1861) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency xmltodict to v0.14.2 [\#1940](https://github.com/jrnl-org/jrnl/pull/1940) ([renovate[bot]](https://github.com/apps/renovate)) +- Update nick-invision/retry action to v3 [\#1851](https://github.com/jrnl-org/jrnl/pull/1851) ([renovate[bot]](https://github.com/apps/renovate)) +- Update peter-evans/create-pull-request action to v6 [\#1852](https://github.com/jrnl-org/jrnl/pull/1852) ([renovate[bot]](https://github.com/apps/renovate)) + +## [v4.1](https://pypi.org/project/jrnl/v4.1/) (2023-11-04) + +[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v4.1-beta2...v4.1) + +**Build:** + +- Add Python 3.12 support [\#1761](https://github.com/jrnl-org/jrnl/pull/1761) ([micahellison](https://github.com/micahellison)) - Set new required build fields in the ReadTheDocs config file [\#1803](https://github.com/jrnl-org/jrnl/pull/1803) ([micahellison](https://github.com/micahellison)) - Replace flake8 and isort with ruff linter and add `black --check` to linting step [\#1763](https://github.com/jrnl-org/jrnl/pull/1763) ([micahellison](https://github.com/micahellison)) @@ -28,47 +116,25 @@ **Packaging:** -- Update dependency pytest to v7.4.3 [\#1816](https://github.com/jrnl-org/jrnl/pull/1816) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency cryptography to v41.0.5 [\#1815](https://github.com/jrnl-org/jrnl/pull/1815) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency tzlocal to v5.2 [\#1814](https://github.com/jrnl-org/jrnl/pull/1814) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency ruamel.yaml to v0.18.3 [\#1813](https://github.com/jrnl-org/jrnl/pull/1813) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency black to v23.10.1 [\#1811](https://github.com/jrnl-org/jrnl/pull/1811) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency ruff to v0.1.3 [\#1810](https://github.com/jrnl-org/jrnl/pull/1810) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency pytest-bdd to v7 [\#1807](https://github.com/jrnl-org/jrnl/pull/1807) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency poethepoet to v0.24.1 [\#1806](https://github.com/jrnl-org/jrnl/pull/1806) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency tzlocal to v5.1 [\#1804](https://github.com/jrnl-org/jrnl/pull/1804) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency ruamel.yaml to v0.17.35 [\#1802](https://github.com/jrnl-org/jrnl/pull/1802) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency poethepoet to v0.24.0 [\#1798](https://github.com/jrnl-org/jrnl/pull/1798) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency ruff to v0.0.292 [\#1797](https://github.com/jrnl-org/jrnl/pull/1797) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency cryptography to v41.0.4 [\#1796](https://github.com/jrnl-org/jrnl/pull/1796) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency mkdocs to v1.5.3 [\#1795](https://github.com/jrnl-org/jrnl/pull/1795) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency rich to v13.6.0 [\#1794](https://github.com/jrnl-org/jrnl/pull/1794) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency ruff to v0.0.290 [\#1792](https://github.com/jrnl-org/jrnl/pull/1792) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency black to v23.9.1 [\#1791](https://github.com/jrnl-org/jrnl/pull/1791) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency black to v23.9.0 [\#1790](https://github.com/jrnl-org/jrnl/pull/1790) ([renovate[bot]](https://github.com/apps/renovate)) +- Drop/replace ansiwrap dependency [\#1191](https://github.com/jrnl-org/jrnl/issues/1191) +- Use rich instead of ansiwrap to wrap text [\#1693](https://github.com/jrnl-org/jrnl/pull/1693) ([micahellison](https://github.com/micahellison)) - Update actions/checkout action to v4 [\#1788](https://github.com/jrnl-org/jrnl/pull/1788) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency pytest to v7.4.2 [\#1787](https://github.com/jrnl-org/jrnl/pull/1787) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency poethepoet to v0.22.1 [\#1785](https://github.com/jrnl-org/jrnl/pull/1785) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency tox to v4.11.3 [\#1782](https://github.com/jrnl-org/jrnl/pull/1782) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency mkdocs to v1.5.2 [\#1780](https://github.com/jrnl-org/jrnl/pull/1780) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency cryptography to v41.0.3 [\#1779](https://github.com/jrnl-org/jrnl/pull/1779) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency ruff to v0.0.287 [\#1778](https://github.com/jrnl-org/jrnl/pull/1778) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency rich to v13.5.2 [\#1776](https://github.com/jrnl-org/jrnl/pull/1776) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency rich to v13.5.0 [\#1775](https://github.com/jrnl-org/jrnl/pull/1775) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency mkdocs to v1.5.1 [\#1774](https://github.com/jrnl-org/jrnl/pull/1774) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency ruff to v0.0.280 [\#1773](https://github.com/jrnl-org/jrnl/pull/1773) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency cryptography to v41.0.2 [\#1770](https://github.com/jrnl-org/jrnl/pull/1770) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency black to v23.7.0 [\#1769](https://github.com/jrnl-org/jrnl/pull/1769) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency poethepoet to v0.21.1 [\#1767](https://github.com/jrnl-org/jrnl/pull/1767) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency tox to v4.6.4 [\#1765](https://github.com/jrnl-org/jrnl/pull/1765) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency parse-type to v0.6.2 [\#1762](https://github.com/jrnl-org/jrnl/pull/1762) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency black to v23.10.1 [\#1811](https://github.com/jrnl-org/jrnl/pull/1811) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency cryptography to v41.0.5 [\#1815](https://github.com/jrnl-org/jrnl/pull/1815) ([renovate[bot]](https://github.com/apps/renovate)) - Update dependency keyring to v24.2.0 [\#1760](https://github.com/jrnl-org/jrnl/pull/1760) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency keyring to v24 [\#1758](https://github.com/jrnl-org/jrnl/pull/1758) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency pytest to v7.4.0 [\#1757](https://github.com/jrnl-org/jrnl/pull/1757) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency rich to v13.4.2 [\#1754](https://github.com/jrnl-org/jrnl/pull/1754) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency cryptography to v41 [\#1753](https://github.com/jrnl-org/jrnl/pull/1753) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency ruamel.yaml to v0.17.32 [\#1752](https://github.com/jrnl-org/jrnl/pull/1752) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency tox to v4.6.3 [\#1751](https://github.com/jrnl-org/jrnl/pull/1751) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency mkdocs to v1.5.3 [\#1795](https://github.com/jrnl-org/jrnl/pull/1795) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency parse-type to v0.6.2 [\#1762](https://github.com/jrnl-org/jrnl/pull/1762) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency poethepoet to v0.24.1 [\#1806](https://github.com/jrnl-org/jrnl/pull/1806) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency pytest to v7.4.3 [\#1816](https://github.com/jrnl-org/jrnl/pull/1816) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency pytest-bdd to v7 [\#1807](https://github.com/jrnl-org/jrnl/pull/1807) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency rich to v13.6.0 [\#1794](https://github.com/jrnl-org/jrnl/pull/1794) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency ruamel.yaml to v0.18.3 [\#1813](https://github.com/jrnl-org/jrnl/pull/1813) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency ruff to v0.1.3 [\#1810](https://github.com/jrnl-org/jrnl/pull/1810) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency tox to v4.11.3 [\#1782](https://github.com/jrnl-org/jrnl/pull/1782) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency tzlocal to v5.2 [\#1814](https://github.com/jrnl-org/jrnl/pull/1814) ([renovate[bot]](https://github.com/apps/renovate)) + +**Special thanks:** +- jrnl uses UTC instead of local time for entries in WSL/Ubuntu [\#1607](https://github.com/jrnl-org/jrnl/issues/1607) investigated and reported upstream by [giuseppedandrea](https://github.com/giuseppedandrea) ## [v4.0.1](https://pypi.org/project/jrnl/v4.0.1/) (2023-06-20) diff --git a/docs/installation.md b/docs/installation.md index 8844f851..16401c73 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -7,24 +7,14 @@ License: https://www.gnu.org/licenses/gpl-3.0.html ## Installation -On Mac and Linux, the easiest way to install `jrnl` is using -[Homebrew](http://brew.sh/): - -``` sh -brew install jrnl -``` - -On other platforms, install `jrnl` using [Python](https://www.python.org/) 3.10+ and [pipx](https://pipxproject.github.io/pipx/): +The easiest way to install `jrnl` is using +[pipx](https://pipx.pypa.io/stable/installation/) +with [Python](https://www.python.org/) 3.10+: ``` sh pipx install jrnl ``` -!!! note - `pipx` should be installed through either `brew` or `pip`. Missing dependencies and other issues - may occur when installing `pipx` through `apt` or another package manager. Further installation - instructions can be found in [pipx's documentation](https://pipxproject.github.io/pipx/installation/). - !!! tip Do not use `sudo` while installing `jrnl`. This may lead to path issues. diff --git a/docs/privacy-and-security.md b/docs/privacy-and-security.md index f855cc3e..df19ea13 100644 --- a/docs/privacy-and-security.md +++ b/docs/privacy-and-security.md @@ -14,6 +14,35 @@ program there are some limitations to be aware of. passwords can be easily circumvented by someone with basic security skills to access to your encrypted `jrnl` file. +## Plausible deniability + +You may be able to hide the contents of your journal behind a layer of encryption, +but if someone has access to your configuration file, then they can figure out that +you have a journal, where that journal file is, and when you last edited it. +With a sufficient power imbalance, someone may be able to force you to unencrypt +it through non-technical means. + +## Spying + +While `jrnl` can protect against unauthorized access to your journal entries while +it isn't open, it cannot protect you against an unsafe computer/location. +For example: + +- Someone installs a keylogger, tracking what you type into your journal. +- Someone watches your screen while you write your entry. +- Someone installs a backdoor into `jrnl` or poisons your journal into revealing your entries. + +## Saved Passwords + +When creating an encrypted journal, you'll be prompted as to whether or not you +want to "store the password in your keychain." This keychain is accessed using +the [Python keyring library](https://pypi.org/project/keyring/), which has different +behavior depending on your operating system. + +In Windows, the keychain is the Windows Credential Manager (WCM), which can't be locked +and can be accessed by any other application running under your username. If this is +a concern for you, you may not want to store your password. + ## Shell history Since you can enter entries from the command line, any tool that logs command @@ -198,25 +227,6 @@ vim.api.nvim_create_autocmd( {"BufNewFile","BufReadPre" }, { Please see `:h