diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 37711e2c..8a1fe45f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -12,7 +12,7 @@ Here are some key points to include in your description: ### Checklist -- [ ] I have read the [contributing doc](https://github.com/jrnl-org/jrnl/blob/develop/docs/contributing.md). +- [ ] I have read the [contributing doc](https://github.com/jrnl-org/jrnl/blob/develop/CONTRIBUTING.md). - [ ] I have included a link to the relevant issue number. - [ ] I have checked to ensure there aren't other open [pull requests](../pulls) for the same issue. diff --git a/.github/actions/run_tests/action.yaml b/.github/actions/run_tests/action.yaml index 490a00c4..918289a9 100644 --- a/.github/actions/run_tests/action.yaml +++ b/.github/actions/run_tests/action.yaml @@ -11,17 +11,16 @@ runs: shell: bash - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - allow-prereleases: true - name: Capture full Python version in env run: echo "PYTHON_FULL_VERSION=$(python --version)" >> $GITHUB_ENV shell: bash - name: poetry cache # Change CACHE_STRING secret to bust the cache - uses: actions/cache@v4 + uses: actions/cache@v3 with: path: .venv key: ${{ runner.os }}-${{ hashFiles('poetry.lock') }}-${{ env.PYTHON_FULL_VERSION }}-${{ inputs.cache-string }} @@ -34,7 +33,7 @@ runs: echo '::endgroup::' echo '::group::Other dependencies' - poetry sync + poetry install --remove-untracked echo '::endgroup::' echo 'DEPS_INSTALLED=true' >> $GITHUB_ENV diff --git a/.github/workflows/changelog.yaml b/.github/workflows/changelog.yaml index a9347a13..0c40ce8f 100644 --- a/.github/workflows/changelog.yaml +++ b/.github/workflows/changelog.yaml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v3 with: token: ${{ secrets.JRNL_BOT_TOKEN }} @@ -59,7 +59,7 @@ jobs: if [[ "$(git rev-parse "origin/$BRANCH")" != "$GITHUB_SHA" ]]; then # Normal build on a branch (no tag) - echo "::debug::BRANCH: $BRANCH $(git rev-parse "origin/$BRANCH")" + echo "::debug::BRANCH: $BRANCH $(git rev-parse origin/$BRANCH)" echo "::debug::GITHUB_SHA: $GITHUB_SHA" echo "::error::$BRANCH has been updated since build started. Aborting changelog." exit 1 diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 3f5fe714..1e822dc7 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -36,10 +36,10 @@ jobs: os: [ ubuntu-latest ] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v3 - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v4 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@v4 + uses: actions/cache@v3 with: path: .venv key: ${{ runner.os }}-${{ hashFiles('poetry.lock') }}-${{ env.PYTHON_FULL_VERSION }}-${{ secrets.CACHE_STRING }} - name: npm cache - uses: actions/cache@v4 + uses: actions/cache@v3 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 sync --no-root + poetry install --no-root --remove-untracked npm install echo "node_modules/.bin" >> "$GITHUB_PATH" diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index f8e203b2..82d9b8a7 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -19,6 +19,11 @@ on: type: boolean required: true default: true + include_brew: + description: 'Publish to Homebrew?' + type: boolean + required: true + default: true jobs: validate: @@ -61,12 +66,12 @@ jobs: echo "JRNL_VERSION=$JRNL_VERSION" >> "$GITHUB_ENV" - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v4 with: - python-version: '3.13' + python-version: '3.11' - name: Checkout repo - uses: actions/checkout@v4 + uses: actions/checkout@v3 with: token: ${{ secrets.JRNL_BOT_TOKEN }} @@ -107,3 +112,111 @@ 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@v4 + 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_pipelines.yaml b/.github/workflows/testing_pipelines.yaml index fbba51f1..46b353e2 100644 --- a/.github/workflows/testing_pipelines.yaml +++ b/.github/workflows/testing_pipelines.yaml @@ -14,8 +14,6 @@ on: paths: - '.github/workflows/**' - '.github/actions/**' - schedule: - - cron: '0 0 * * SAT' jobs: test: @@ -28,7 +26,7 @@ jobs: os: [ ubuntu-latest ] steps: - run: git config --global core.autocrlf false - - uses: actions/checkout@v4 + - uses: actions/checkout@v3 - name: Check workflow files uses: docker://rhysd/actionlint:latest with: diff --git a/.github/workflows/testing_prs.yaml b/.github/workflows/testing_prs.yaml index 42a3f86f..0469bbda 100644 --- a/.github/workflows/testing_prs.yaml +++ b/.github/workflows/testing_prs.yaml @@ -37,11 +37,11 @@ jobs: strategy: fail-fast: false matrix: - python-version: [ '3.10', '3.11', '3.12', '3.13' ] + python-version: [ '3.10', '3.11' ] os: [ ubuntu-latest, macos-latest, windows-latest ] steps: - run: git config --global core.autocrlf false - - uses: actions/checkout@v4 + - uses: actions/checkout@v3 - name: Run tests uses: ./.github/actions/run_tests with: diff --git a/.github/workflows/testing_schedule.yaml b/.github/workflows/testing_schedule.yaml index 9791349c..dc0ebab2 100644 --- a/.github/workflows/testing_schedule.yaml +++ b/.github/workflows/testing_schedule.yaml @@ -17,11 +17,11 @@ jobs: strategy: fail-fast: false matrix: - python-version: [ '3.10', '3.11', '3.12', '3.13' ] + python-version: [ '3.10', '3.11' ] os: [ ubuntu-latest, macos-latest, windows-latest ] steps: - run: git config --global core.autocrlf false - - uses: actions/checkout@v4 + - uses: actions/checkout@v3 - name: Run tests uses: ./.github/actions/run_tests with: diff --git a/.gitignore b/.gitignore index 938692b0..65018206 100644 --- a/.gitignore +++ b/.gitignore @@ -19,7 +19,6 @@ var/ node_modules/ __pycache__/ .pytest_cache/ -.flakeheaven_cache/ # Versioning .python-version @@ -40,7 +39,7 @@ exp/ objects.inv searchindex.js -# virtualenv +# virtaulenv .venv*/ env/ env*/ diff --git a/CHANGELOG.md b/CHANGELOG.md index ba714328..6099d836 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,180 +2,30 @@ ## [Unreleased](https://github.com/jrnl-org/jrnl/) -[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v4.2.1...HEAD) - -**Fixed bugs:** - -- 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:** - -- 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) +[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v4.0-beta...HEAD) **Documentation:** -- Typing animation in landing page is broken [\#1969](https://github.com/jrnl-org/jrnl/issues/1969) +- Fix various typos [\#1718](https://github.com/jrnl-org/jrnl/pull/1718) ([hezhizhen](https://github.com/hezhizhen)) **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)) +- Update dependency cryptography to v40.0.2 [\#1723](https://github.com/jrnl-org/jrnl/pull/1723) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency flakeheaven to v3.3.0 [\#1722](https://github.com/jrnl-org/jrnl/pull/1722) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency pytest to v7.3.1 [\#1720](https://github.com/jrnl-org/jrnl/pull/1720) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency black to v23.3.0 [\#1715](https://github.com/jrnl-org/jrnl/pull/1715) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency flake8-type-checking to v2.4.0 [\#1714](https://github.com/jrnl-org/jrnl/pull/1714) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency rich to v13.3.4 [\#1713](https://github.com/jrnl-org/jrnl/pull/1713) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency tox to v4.4.12 [\#1712](https://github.com/jrnl-org/jrnl/pull/1712) ([renovate[bot]](https://github.com/apps/renovate)) -## [v4.2](https://pypi.org/project/jrnl/v4.2/) (2024-11-17) +## [v4.0-beta](https://pypi.org/project/jrnl/v4.0-beta/) (2023-03-25) -[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)) - -**Documentation:** - -- Add note about messages going to `stderr` and the implication for piping [\#1768](https://github.com/jrnl-org/jrnl/pull/1768) ([micahellison](https://github.com/micahellison)) - -**Packaging:** - -- 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 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 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) - -[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v4.0.1-beta...v4.0.1) - -**Fixed bugs:** - -- jrnl crashes when running `jrnl --list --format json` and `jrnl --list --format yaml` [\#1737](https://github.com/jrnl-org/jrnl/issues/1737) -- Refactor --template code [\#1711](https://github.com/jrnl-org/jrnl/pull/1711) ([micahellison](https://github.com/micahellison)) - -**Build:** - -- Fix linting issue in CI pipeline [\#1743](https://github.com/jrnl-org/jrnl/pull/1743) ([wren](https://github.com/wren)) - -**Packaging:** - -- Update dependency ruamel.yaml to v0.17.28 [\#1749](https://github.com/jrnl-org/jrnl/pull/1749) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency requests to v2.31.0 [\#1748](https://github.com/jrnl-org/jrnl/pull/1748) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency ruamel.yaml to v0.17.26 [\#1746](https://github.com/jrnl-org/jrnl/pull/1746) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency tzlocal to v5 [\#1741](https://github.com/jrnl-org/jrnl/pull/1741) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency pytest-xdist to v3.3.1 [\#1740](https://github.com/jrnl-org/jrnl/pull/1740) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency poethepoet to v0.20.0 [\#1735](https://github.com/jrnl-org/jrnl/pull/1735) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency mkdocs to v1.4.3 [\#1733](https://github.com/jrnl-org/jrnl/pull/1733) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency rich to v13.3.5 [\#1729](https://github.com/jrnl-org/jrnl/pull/1729) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency requests to v2.30.0 [\#1728](https://github.com/jrnl-org/jrnl/pull/1728) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency tox to v4.5.1 [\#1727](https://github.com/jrnl-org/jrnl/pull/1727) ([renovate[bot]](https://github.com/apps/renovate)) -- Update peter-evans/create-pull-request action to v5 [\#1719](https://github.com/jrnl-org/jrnl/pull/1719) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency flake8-simplify to v0.20.0 [\#1716](https://github.com/jrnl-org/jrnl/pull/1716) ([renovate[bot]](https://github.com/apps/renovate)) - -## [v4.0](https://pypi.org/project/jrnl/v4.0/) (2023-05-20) - -[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v4.0-beta3...v4.0) - -๐Ÿšจ **BREAKING CHANGES** ๐Ÿšจ - -**Deprecated:** - -- Drop Python 3.9 and use Python 3.11 official release [\#1611](https://github.com/jrnl-org/jrnl/pull/1611) ([micahellison](https://github.com/micahellison)) +[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v3.3...v4.0-beta) **Implemented enhancements:** +- Display locations of config file and documentation after initial install [\#1694](https://github.com/jrnl-org/jrnl/issues/1694) +- Don't import cryptography package if not needed [\#1521](https://github.com/jrnl-org/jrnl/issues/1521) - Add message with config location and docs location when installation is complete [\#1695](https://github.com/jrnl-org/jrnl/pull/1695) ([micahellison](https://github.com/micahellison)) - Prompt to include colors in config when first running jrnl [\#1687](https://github.com/jrnl-org/jrnl/pull/1687) ([micahellison](https://github.com/micahellison)) - Add ability to use template with `--template` [\#1667](https://github.com/jrnl-org/jrnl/pull/1667) ([alichtman](https://github.com/alichtman)) @@ -187,15 +37,25 @@ **Fixed bugs:** -- Only read text files that look like entries when opening folder journal [\#1697](https://github.com/jrnl-org/jrnl/pull/1697) ([micahellison](https://github.com/micahellison)) +- Combinations of `--change-time`, `--delete`, and `--edit` don't work consistently [\#1696](https://github.com/jrnl-org/jrnl/issues/1696) +- jrnl doesn't display count of entries deleted after deleting entries with `--delete` [\#1666](https://github.com/jrnl-org/jrnl/issues/1666) +- Templated entries should not be saved if the raw text is identical to the original template [\#1652](https://github.com/jrnl-org/jrnl/issues/1652) +- Adding an entry with a combination of flags causes a journal overwrite [\#1639](https://github.com/jrnl-org/jrnl/issues/1639) +- jrnl does not update version key in config file [\#1638](https://github.com/jrnl-org/jrnl/issues/1638) +- jrnl should not create 0-length "encrypted" file on startup [\#1493](https://github.com/jrnl-org/jrnl/issues/1493) - Save empty journal on install instead of just creating a zero-length file [\#1690](https://github.com/jrnl-org/jrnl/pull/1690) ([micahellison](https://github.com/micahellison)) - Allow combinations of `--change-time`, `--delete`, and `--edit` while correctly counting the number of entries affected [\#1669](https://github.com/jrnl-org/jrnl/pull/1669) ([wren](https://github.com/wren)) - Don't save templated journal entries if the received raw text is the same as the template itself [\#1653](https://github.com/jrnl-org/jrnl/pull/1653) ([Briscoooe](https://github.com/Briscoooe)) - Add tag to XML file when edited DayOne entry and is searchable afterward [\#1648](https://github.com/jrnl-org/jrnl/pull/1648) ([jonakeys](https://github.com/jonakeys)) - Update version key in config file after version changes [\#1646](https://github.com/jrnl-org/jrnl/pull/1646) ([jonakeys](https://github.com/jonakeys)) +**Deprecated:** + +- Drop Python 3.9 and use Python 3.11 official release [\#1611](https://github.com/jrnl-org/jrnl/pull/1611) ([micahellison](https://github.com/micahellison)) + **Build:** +- Support pytest-bdd 6 [\#1534](https://github.com/jrnl-org/jrnl/issues/1534) - Update copyright notices for 2023 [\#1660](https://github.com/jrnl-org/jrnl/pull/1660) ([wren](https://github.com/wren)) - Fix bug where changelog is always slightly out of date on release tags [\#1631](https://github.com/jrnl-org/jrnl/pull/1631) ([wren](https://github.com/wren)) - Add `simplify` plugin to linting checks [\#1630](https://github.com/jrnl-org/jrnl/pull/1630) ([wren](https://github.com/wren)) @@ -203,8 +63,11 @@ **Documentation:** -- Update contributing.md links in documentation [\#1726](https://github.com/jrnl-org/jrnl/pull/1726) ([ahosking](https://github.com/ahosking)) -- Fix various typos [\#1718](https://github.com/jrnl-org/jrnl/pull/1718) ([hezhizhen](https://github.com/hezhizhen)) +- Document template extension behavior [\#1677](https://github.com/jrnl-org/jrnl/issues/1677) +- Visual Studio Code may store unencrypted temporary files [\#1675](https://github.com/jrnl-org/jrnl/issues/1675) +- Document `-tagged`, `-not -tagged`, and `-not -starred` [\#1668](https://github.com/jrnl-org/jrnl/issues/1668) +- Documentation Change [\#1651](https://github.com/jrnl-org/jrnl/issues/1651) +- Update console examples on jrnl.sh front page [\#1622](https://github.com/jrnl-org/jrnl/issues/1622) - Update documentation front page text [\#1698](https://github.com/jrnl-org/jrnl/pull/1698) ([micahellison](https://github.com/micahellison)) - Support mkdocs 1.4.2 and fix its missing breadcrumb [\#1691](https://github.com/jrnl-org/jrnl/pull/1691) ([micahellison](https://github.com/micahellison)) - Document temporary file extension behavior when using template [\#1686](https://github.com/jrnl-org/jrnl/pull/1686) ([micahellison](https://github.com/micahellison)) @@ -217,18 +80,17 @@ **Packaging:** -- Lock ruamel.yaml version to v0.17.21 until bug is fixed [\#1738](https://github.com/jrnl-org/jrnl/pull/1738) ([wren](https://github.com/wren)) -- Update dependency black to v23.3.0 [\#1715](https://github.com/jrnl-org/jrnl/pull/1715) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency cryptography to v40.0.2 [\#1723](https://github.com/jrnl-org/jrnl/pull/1723) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency flake8-type-checking to v2.4.0 [\#1714](https://github.com/jrnl-org/jrnl/pull/1714) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency flakeheaven to v3.3.0 [\#1722](https://github.com/jrnl-org/jrnl/pull/1722) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency ipdb to v0.13.13 [\#1703](https://github.com/jrnl-org/jrnl/pull/1703) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency cryptography to v40 [\#1710](https://github.com/jrnl-org/jrnl/pull/1710) ([renovate[bot]](https://github.com/apps/renovate)) - Update dependency poethepoet to v0.19.0 [\#1709](https://github.com/jrnl-org/jrnl/pull/1709) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency pytest to v7.3.1 [\#1720](https://github.com/jrnl-org/jrnl/pull/1720) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency pytest-xdist to v3.2.1 [\#1705](https://github.com/jrnl-org/jrnl/pull/1705) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency rich to v13.3.4 [\#1713](https://github.com/jrnl-org/jrnl/pull/1713) ([renovate[bot]](https://github.com/apps/renovate)) -- Update dependency tox to v4.4.7 [\#1707](https://github.com/jrnl-org/jrnl/pull/1707) ([renovate[bot]](https://github.com/apps/renovate)) - Update dependency tzlocal to v4.3 [\#1708](https://github.com/jrnl-org/jrnl/pull/1708) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency tox to v4.4.7 [\#1707](https://github.com/jrnl-org/jrnl/pull/1707) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency rich to v13.3.2 [\#1706](https://github.com/jrnl-org/jrnl/pull/1706) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency pytest-xdist to v3.2.1 [\#1705](https://github.com/jrnl-org/jrnl/pull/1705) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency pytest to v7.2.2 [\#1704](https://github.com/jrnl-org/jrnl/pull/1704) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency ipdb to v0.13.13 [\#1703](https://github.com/jrnl-org/jrnl/pull/1703) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency flake8-type-checking to v2.3.1 [\#1702](https://github.com/jrnl-org/jrnl/pull/1702) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency cryptography to v39.0.2 [\#1701](https://github.com/jrnl-org/jrnl/pull/1701) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency rich to v13 [\#1654](https://github.com/jrnl-org/jrnl/pull/1654) ([renovate[bot]](https://github.com/apps/renovate)) ## [v3.3](https://pypi.org/project/jrnl/v3.3/) (2022-10-29) @@ -327,10 +189,6 @@ ๐Ÿšจ **BREAKING CHANGES** ๐Ÿšจ -**Deprecated:** - -- Drop support for Python 3.7 and 3.8 [\#1412](https://github.com/jrnl-org/jrnl/pull/1412) ([micahellison](https://github.com/micahellison)) - **Implemented enhancements:** - Show name of journal when creating a password/encrypting [\#1478](https://github.com/jrnl-org/jrnl/pull/1478) ([jonakeys](https://github.com/jonakeys)) @@ -353,6 +211,10 @@ - Display "No entry to save, because no text was received" after empty entry on cmdline [\#1459](https://github.com/jrnl-org/jrnl/pull/1459) ([apainintheneck](https://github.com/apainintheneck)) - Yaml export errors now don't show stack trace [\#1449](https://github.com/jrnl-org/jrnl/pull/1449) ([apainintheneck](https://github.com/apainintheneck)) +**Deprecated:** + +- Drop support for Python 3.7 and 3.8 [\#1412](https://github.com/jrnl-org/jrnl/pull/1412) ([micahellison](https://github.com/micahellison)) + **Build:** - Pin `pytest-bdd` to \<6.0 to temporarily avoid breaking changes [\#1536](https://github.com/jrnl-org/jrnl/pull/1536) ([wren](https://github.com/wren)) diff --git a/README.md b/README.md index a99f0ba8..964df9ab 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ src="https://opencollective.com/jrnl/contributors.svg?width=890&button=false" /> If you'd also like to help make `jrnl` better, please see our [contributing -documentation](docs/contributing.md). +documentation](CONTRIBUTING.md). ### Financial Backers diff --git a/docs/formats.md b/docs/formats.md index 520a197c..e78194eb 100644 --- a/docs/formats.md +++ b/docs/formats.md @@ -117,11 +117,6 @@ These formats are mainly intended for piping or exporting your journal to other programs. Even so, they can still be used in the same way as any other format (like written to a file, or displayed in your terminal, if you want). -!!! note -You may see boxed messages like "2 entries found" when using these formats, but -those messages are written to `stderr` instead of `stdout`, and won't be piped when -using the `|` operator. - ### JSON ``` sh diff --git a/docs/installation.md b/docs/installation.md index 16401c73..8844f851 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -7,14 +7,24 @@ License: https://www.gnu.org/licenses/gpl-3.0.html ## Installation -The easiest way to install `jrnl` is using -[pipx](https://pipx.pypa.io/stable/installation/) -with [Python](https://www.python.org/) 3.10+: +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/): ``` 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 df19ea13..f855cc3e 100644 --- a/docs/privacy-and-security.md +++ b/docs/privacy-and-security.md @@ -14,35 +14,6 @@ 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 @@ -227,6 +198,25 @@ vim.api.nvim_create_autocmd( {"BufNewFile","BufReadPre" }, { Please see `:h