diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index d546614f..00000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: ":new:, bug" -assignees: '' - ---- - -## Bug Report - - - -### Environment - - `jrnl --diagnostic` output: - - Install method: - -### Current Behavior - - -### Expected Behavior - - -### Repro Steps - - -### Other Information - diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml new file mode 100644 index 00000000..0303209b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -0,0 +1,74 @@ +name: Bug Report +description: Create a report to help us improve +title: "Bug Report" +labels: [ ":new:", "bug" ] +body: + - type: markdown + attributes: + value: | + # Bug Report + Hello, and thank you for reporting an issue! + + Please fill out the points below, as it will make our process much easier. + + - type: textarea + id: diagnostic + attributes: + label: Diagnostic output + description: Run `jrnl --diagnostic` and paste the output below + placeholder: Paste output here + validations: + required: true + + - type: textarea + id: current-behavior + attributes: + label: Current Behavior + description: Please put a short description of what is currently happening. + placeholder: Tell us what is happening + validations: + required: true + + - type: textarea + id: expected-behavior + attributes: + label: Expected Behavior + description: Please write a short description of what you would expect to happen + placeholder: Tell us what should be happening + validations: + required: true + + - type: textarea + id: repro-steps + attributes: + label: Repro Steps + description: | + Provide the steps to reproduce the problem. + + Please be as precise as possible, since more info will let us help you faster. + placeholder: Repro steps + validations: + required: true + + - type: textarea + id: debug-output + attributes: + label: Debug output + description: | + Please provide the output of your command with the `--debug` flag on. + placeholder: "example: `jrnl --debug lorem ipsum`" + validations: + required: true + + - type: textarea + id: other-info + attributes: + label: Other Information + description: > + Is there anything else we should know? + + (e.g. more detailed explanation, stacktraces, related + issues, suggestions how to fix, links for us to have context, eg. + stackoverflow, gitter, etc) + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md deleted file mode 100644 index dc186ee9..00000000 --- a/.github/ISSUE_TEMPLATE/documentation.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -name: Documentation Change -about: Request or report any updates to our documentation (https://jrnl.sh) -title: '' -labels: ":new:, documentation" -assignees: '' - ---- - -## Documentation Change - - -### Affected Page(s) - - - - -### What Could Be Better? - - -### Other Information - diff --git a/.github/ISSUE_TEMPLATE/documentation.yaml b/.github/ISSUE_TEMPLATE/documentation.yaml new file mode 100644 index 00000000..32e58533 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation.yaml @@ -0,0 +1,41 @@ +name: Documentation Change +description: Request or report any updates to our documentation (https://jrnl.sh) +title: Documentation Change +labels: [ ":new:", "documentation" ] +body: + - type: markdown + attributes: + value: | + # Documentation Change + Hello, and thank you for reporting an issue! + + Please fill out the points below, as it will make our process much easier. + + - type: textarea + id: affected-pages + attributes: + label: Affected Page(s) + description: > + Please tell us which page, or pages, from the documentation site + (https://jrnl.sh) are affected in this issue + placeholder: "example: https://jrnl.sh/en/stable/overview" + validations: + required: true + + - type: textarea + id: what-could-be-better + attributes: + label: What Could Be Better? + description: > + Please write a short description of what you hope can be clarified or + further explained. + validations: + required: true + + - type: textarea + id: other-info + attributes: + label: Other Information + description: Is there anything else we should know that might be helpful? + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index d9061604..00000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for jrnl -title: '' -labels: ":new:, enhancement" -assignees: '' - ---- - -## Feature Request - - -### Use Case/Motivation - - -### Example Usage - - -### Other information - diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml new file mode 100644 index 00000000..9d0494c4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yaml @@ -0,0 +1,43 @@ +name: Feature Request +description: Suggest an idea for jrnl +title: "Feature Report" +labels: [ ":new:", "enhancement" ] +body: + - type: markdown + attributes: + value: | + # Feature Request + Hello, and thank you for reporting an issue! + + Please fill out the points below, as it will make our process much easier. + + - type: textarea + id: user-case + attributes: + label: Use Case/Motivation + description: What is the motivation / use case for changing the behavior? + placeholder: Tell us about your idea + validations: + required: true + + - type: textarea + id: example-usage + attributes: + label: Example Usage + description: Please provide examples of the usage you would like to see. + placeholder: e.g `jrnl --new-flag="super cool new feature"` + validations: + required: true + + - type: textarea + id: other-info + attributes: + label: Other Information + description: > + Is there anything else we should know? + + (e.g. more detailed explanation, stacktraces, related + issues, suggestions how to fix, links for us to have context, eg. + stackoverflow, gitter, etc) + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/support_request.md b/.github/ISSUE_TEMPLATE/support_request.md deleted file mode 100644 index e7d1a96f..00000000 --- a/.github/ISSUE_TEMPLATE/support_request.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -name: Support Request -about: Get help with jrnl -title: '' -labels: ":new:, support" -assignees: '' - ---- - -## Support Request - - -### Environment - - - Jrnl `--diagnostic` output: - - Install method: - -### What are you trying to do? - - -### What have you tried? - - -### Other Information - diff --git a/.github/ISSUE_TEMPLATE/support_request.yaml b/.github/ISSUE_TEMPLATE/support_request.yaml new file mode 100644 index 00000000..21c9bddc --- /dev/null +++ b/.github/ISSUE_TEMPLATE/support_request.yaml @@ -0,0 +1,54 @@ +name: Support Request +description: Get help with jrnl +title: Support Request +labels: [ ":new:", "support" ] +body: + - type: markdown + attributes: + value: | + # Support Request + Hello, and thank you for reporting an issue! + + Please fill out the points below, as it will make our process much easier. + + - type: textarea + id: diagnostic + attributes: + label: Diagnostic output + description: Run `jrnl --diagnostic` and paste the output below + placeholder: Paste output here + validations: + required: true + + - type: textarea + id: current-behavior + attributes: + label: What are you trying to do? + description: Please put a short description of what is happening. + placeholder: Tell us what is happening + validations: + required: true + + - type: textarea + id: tried + attributes: + label: What have you tried? + description: > + Have you tried anything to fix the problem? This can help give us more + information to help you with. + placeholder: Tell us what should be happening + validations: + required: true + + - type: textarea + id: other-info + attributes: + label: Other Information + description: > + Is there anything else we should know? + + (e.g. more detailed explanation, stacktraces, related + issues, suggestions how to fix, links for us to have context, eg. + stackoverflow, gitter, etc) + validations: + required: false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 695290e8..37711e2c 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -12,13 +12,13 @@ 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/CONTRIBUTING.md). +- [ ] I have read the [contributing doc](https://github.com/jrnl-org/jrnl/blob/develop/docs/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. - [ ] I have written new tests for these changes, as needed. diff --git a/.github/actionlint-matcher.json b/.github/actionlint-matcher.json new file mode 100644 index 00000000..4613e161 --- /dev/null +++ b/.github/actionlint-matcher.json @@ -0,0 +1,17 @@ +{ + "problemMatcher": [ + { + "owner": "actionlint", + "pattern": [ + { + "regexp": "^(?:\\x1b\\[\\d+m)?(.+?)(?:\\x1b\\[\\d+m)*:(?:\\x1b\\[\\d+m)*(\\d+)(?:\\x1b\\[\\d+m)*:(?:\\x1b\\[\\d+m)*(\\d+)(?:\\x1b\\[\\d+m)*: (?:\\x1b\\[\\d+m)*(.+?)(?:\\x1b\\[\\d+m)* \\[(.+?)\\]$", + "file": 1, + "line": 2, + "column": 3, + "message": 4, + "code": 5 + } + ] + } + ] +} diff --git a/.github/actions/run_tests/action.yaml b/.github/actions/run_tests/action.yaml new file mode 100644 index 00000000..490a00c4 --- /dev/null +++ b/.github/actions/run_tests/action.yaml @@ -0,0 +1,46 @@ +name: run jrnl tests +description: Runs all jrnl tests on multiple platforms +inputs: + cache-string: + description: 'Cache string secret. Change to bust the cache' + required: true +runs: + using: "composite" + steps: + - run: git config --global core.autocrlf false + shell: bash + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + 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 + with: + path: .venv + key: ${{ runner.os }}-${{ hashFiles('poetry.lock') }}-${{ env.PYTHON_FULL_VERSION }}-${{ inputs.cache-string }} + + - name: Install dependencies + run: | + echo '::group::poetry' + pip --disable-pip-version-check install poetry + poetry config --local virtualenvs.in-project true + echo '::endgroup::' + + echo '::group::Other dependencies' + poetry sync + echo '::endgroup::' + + echo 'DEPS_INSTALLED=true' >> $GITHUB_ENV + shell: bash + + - name: Linting & Testing + if: ${{ env.DEPS_INSTALLED == 'true' }} + run: poetry run poe test + shell: bash diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 070f47f8..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: 2 -updates: -- package-ecosystem: pip - directory: "/" - schedule: - interval: daily - open-pull-requests-limit: 10 - reviewers: - - wren - - micahellison - labels: - - packaging diff --git a/.github/renovate.json b/.github/renovate.json new file mode 100644 index 00000000..5aa9f254 --- /dev/null +++ b/.github/renovate.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:base" + ], + "schedule": [ "at any time" ], + "prConcurrentLimit": 10, + "prHourlyLimit": 10, + "reviewers": [ + "wren", + "micahellison" + ], + "labels": [ "packaging" ] +} diff --git a/.github/workflows/changelog.yaml b/.github/workflows/changelog.yaml index c8d184ec..a9347a13 100644 --- a/.github/workflows/changelog.yaml +++ b/.github/workflows/changelog.yaml @@ -1,3 +1,6 @@ +# Copyright © 2012-2023 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + name: Changelog on: @@ -18,7 +21,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: token: ${{ secrets.JRNL_BOT_TOKEN }} @@ -49,14 +52,14 @@ jobs: if [[ ! ${GITHUB_REF##*/} =~ $prerelease_regex ]]; then echo '::debug::Actual release (not a prerelease)' TAG_REGEX="$prerelease_regex" - echo "FULL_RELEASE=true" >> $GITHUB_ENV + echo "FULL_RELEASE=true" >> "$GITHUB_ENV" fi fi echo "::debug::TAG_REGEX: $TAG_REGEX" - if [[ "$(git rev-parse "origin/$BRANCH")" != $GITHUB_SHA ]]; then + 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 @@ -69,10 +72,12 @@ jobs: echo "::debug::FILENAME: CHANGELOG.md" echo "::debug::SINCE_TAG: $SINCE_TAG" - echo "BRANCH=$BRANCH" >> $GITHUB_ENV - echo "TAG_REGEX=$TAG_REGEX" >> $GITHUB_ENV - echo "FILENAME=CHANGELOG.md" >> $GITHUB_ENV - echo "SINCE_TAG=$SINCE_TAG" >> $GITHUB_ENV + { + echo "BRANCH=$BRANCH" + echo "TAG_REGEX=$TAG_REGEX" + echo "FILENAME=CHANGELOG.md" + echo "SINCE_TAG=$SINCE_TAG" + } >> "$GITHUB_ENV" - name: Prep changelog file (clear out old lines) run: | @@ -92,7 +97,7 @@ jobs: exit 1 fi - sed -i "1,$(expr $tagline - 1)d" "$FILENAME" + sed -i "1,$(( tagline - 1 ))d" "$FILENAME" # delete generated line (or it will be added multiple times) sed -i '/This Changelog was automatically generated by/d' "$FILENAME" # delete trailing empty lines @@ -136,22 +141,30 @@ jobs: SOMETHING_CHANGED=false git diff --exit-code || SOMETHING_CHANGED=true echo "::debug::SOMETHING_CHANGED: $SOMETHING_CHANGED" - echo "SOMETHING_CHANGED=$SOMETHING_CHANGED" >> $GITHUB_ENV + echo "SOMETHING_CHANGED=$SOMETHING_CHANGED" >> "$GITHUB_ENV" - name: Commit if: env.SOMETHING_CHANGED == 'true' run: | - git config user.email "jrnl.bot@gmail.com" - git config user.name "Jrnl Bot" + git config --global user.name "${{ secrets.JRNL_BOT_NAME }}" + git config --global user.email "${{ secrets.JRNL_BOT_EMAIL }}" git add "$FILENAME" git commit -m "Update changelog [ci skip]" - git push origin $BRANCH + git push origin "$BRANCH" + + - name: Update tag to include changelog + if: startsWith(env.GITHUB_REF, 'refs/tags/') + run: | + # This is a tag build (releases and prereleases) + # update the tag to include the changelog + git tag -fam "$GITHUB_REF_NAME" "$GITHUB_REF_NAME" + git push --tags --force - name: Merge to Release branch if: env.FULL_RELEASE == 'true' run: | git fetch --unshallow origin git checkout release - git merge --ff-only $BRANCH + git merge --ff-only "$BRANCH" git push origin release diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 3b8cfa96..3f5fe714 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -1,3 +1,6 @@ +# Copyright © 2012-2023 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + name: Docs on: @@ -9,6 +12,8 @@ on: - 'mkdocs.yml' - 'readthedocs.yml' - '.github/workflows/docs.yaml' + - 'tasks.py' + - 'pyproject.toml' pull_request: branches: [ develop ] paths: @@ -17,31 +22,41 @@ on: - 'mkdocs.yml' - 'readthedocs.yml' - '.github/workflows/docs.yaml' + - 'tasks.py' + - 'pyproject.toml' jobs: accessibility: if: contains(toJson(github.event.commits), '[ci skip]') == false runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + python-version: [ '3.11' ] + os: [ ubuntu-latest ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: - python-version: 3.9 + python-version: ${{ matrix.python-version }} - name: Setup Node.js environment uses: actions/setup-node@main + - name: Capture full Python version in env + run: echo "PYTHON_FULL_VERSION=$(python --version)" >> "$GITHUB_ENV" + - name: poetry cache - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: .venv - key: ${{ runner.os }}-${{ hashFiles('poetry.lock') }}-${{ matrix.python-version }} + key: ${{ runner.os }}-${{ hashFiles('poetry.lock') }}-${{ env.PYTHON_FULL_VERSION }}-${{ secrets.CACHE_STRING }} - name: npm cache - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: node_modules key: ${{ runner.os }}-pa11y-v3 @@ -50,19 +65,12 @@ jobs: run: | pip install poetry poetry config --local virtualenvs.in-project true - poetry install --no-root --remove-untracked - npm install pa11y-ci - echo "node_modules/.bin" >> $GITHUB_PATH + poetry sync --no-root + npm install + echo "node_modules/.bin" >> "$GITHUB_PATH" - name: Start docs server - run: poetry run mkdocs serve & - - - name: Generate sitemap - env: - site_url: http://127.0.0.1:8000 - run: | - select="{urls: [\"${site_url}/\", \"${site_url}/search.html?q=jrnl\", .urlset.url[].loc]}" - curl -s "$site_url/sitemap.xml" | poetry run xq "$select" > list.json + run: poetry run poe docs-run & - name: Accessibility testing (Pa11y) - run: pa11y-ci -c list.json + run: poetry run poe docs-check diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 5e0169c1..f8e203b2 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,20 +1,22 @@ +# Copyright © 2012-2023 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + name: Release on: workflow_dispatch: inputs: version: description: 'Version (e.g. v2.5, v2.5.1-beta, v2.6-beta2)' + type: string required: true include_repo_version: - description: 'Update version in repo? (true/false)' - require: true - default: true - include_pypi: - description: 'Publish to PyPI? (true/false)' + description: 'Update version in repo?' + type: boolean required: true default: true - include_brew: - description: 'Publish to Homebrew? (true/false)' + include_pypi: + description: 'Publish to PyPI?' + type: boolean required: true default: true @@ -56,15 +58,15 @@ jobs: run: | JRNL_VERSION="${{ github.event.inputs.version }}" echo "::debug::version: $JRNL_VERSION" - echo "JRNL_VERSION=$JRNL_VERSION" >> $GITHUB_ENV + echo "JRNL_VERSION=$JRNL_VERSION" >> "$GITHUB_ENV" - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: - python-version: 3.9 + python-version: '3.13' - name: Checkout repo - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: token: ${{ secrets.JRNL_BOT_TOKEN }} @@ -80,7 +82,7 @@ jobs: if: ${{ github.event.inputs.include_repo_version == 'true' }} run: | poetry version "$JRNL_VERSION" - echo __version__ = \"$JRNL_VERSION\" > jrnl/__version__.py + echo "__version__ = \"$JRNL_VERSION\"" > jrnl/__version__.py - name: Commit updated files if: ${{ github.event.inputs.include_repo_version == 'true' && github.repository == env.HOME_REPO }} @@ -103,113 +105,5 @@ jobs: - name: Get PyPI version id: pypi-version-getter run: | - pypi_version="$(ls dist/jrnl-*.tar.gz | sed -r 's!dist/jrnl-(.*)\.tar\.gz!\1!')" - echo "::set-output name=pypi_version::$pypi_version" - - 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 - --force - - - name: Create Pull Request - uses: peter-evans/create-pull-request@v3 - 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 }} + pypi_version="$(find dist/jrnl-*.tar.gz | sed -r 's!dist/jrnl-(.*)\.tar\.gz!\1!')" + echo "pypi_version=$pypi_version" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/testing.yaml b/.github/workflows/testing.yaml deleted file mode 100644 index 63e50ea2..00000000 --- a/.github/workflows/testing.yaml +++ /dev/null @@ -1,81 +0,0 @@ -name: Testing - -on: - push: - branches: [ develop, release ] - paths: - - 'jrnl/**' - - 'features/**' - - 'tests/**' - - 'poetry.lock' - - 'pyproject.toml' - - '.github/workflows/testing.yaml' - pull_request: - branches: [ develop ] - paths: - - 'jrnl/**' - - 'features/**' - - 'tests/**' - - 'poetry.lock' - - 'pyproject.toml' - - '.github/workflows/testing.yaml' - -defaults: - run: - shell: bash # needed to prevent Windows from using PowerShell - -jobs: - test: - if: > - ! contains(github.event.head_commit.message, '[ci skip]') - runs-on: ${{ matrix.os }} - continue-on-error: ${{ matrix.python-version == '3.11-dev' }} - strategy: - fail-fast: false - matrix: - python-version: [ 3.7, 3.8, 3.9, '3.10', 3.11-dev ] - os: [ ubuntu-latest, macos-latest, windows-latest ] - - steps: - - run: git config --global core.autocrlf false - - uses: actions/checkout@v2 - - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - - name: poetry cache # Change CACHE_STRING secret to bust the cache. Useful with minor Python version changes. - uses: actions/cache@v2 - with: - path: .venv - key: ${{ runner.os }}-${{ hashFiles('poetry.lock') }}-${{ matrix.python-version }}-${{ secrets.CACHE_STRING }} - - - name: Install dependencies - run: | - echo '::group::poetry' - pip --disable-pip-version-check install poetry - poetry config --local virtualenvs.in-project true - echo '::endgroup::' - - echo '::group::Other dependencies' - poetry install --remove-untracked - echo '::endgroup::' - - echo 'DEPS_INSTALLED=true' >> $GITHUB_ENV - - - name: Code formatting (Black) - if: ${{ env.DEPS_INSTALLED == 'true' }} - run: | - poetry run black --version - poetry run black --check --diff . - - - name: Code Style (flake8) - if: ${{ env.DEPS_INSTALLED == 'true' }} - run: | - poetry run pflake8 --version - poetry run pflake8 jrnl tests - - - name: Test with pytest - if: ${{ env.DEPS_INSTALLED == 'true' }} - run: poetry run pytest --junitxml=reports/pytest/results.xml diff --git a/.github/workflows/testing_pipelines.yaml b/.github/workflows/testing_pipelines.yaml new file mode 100644 index 00000000..fbba51f1 --- /dev/null +++ b/.github/workflows/testing_pipelines.yaml @@ -0,0 +1,35 @@ +# Copyright © 2012-2023 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + +name: Testing Pipeline Files + +on: + push: + branches: [ develop, release ] + paths: + - '.github/workflows/**' + - '.github/actions/**' + pull_request: + branches: [ develop ] + paths: + - '.github/workflows/**' + - '.github/actions/**' + schedule: + - cron: '0 0 * * SAT' + +jobs: + test: + if: > + ! contains(github.event.head_commit.message, '[ci skip]') + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ ubuntu-latest ] + steps: + - run: git config --global core.autocrlf false + - uses: actions/checkout@v4 + - name: Check workflow files + uses: docker://rhysd/actionlint:latest + with: + args: -color diff --git a/.github/workflows/testing_prs.yaml b/.github/workflows/testing_prs.yaml new file mode 100644 index 00000000..42a3f86f --- /dev/null +++ b/.github/workflows/testing_prs.yaml @@ -0,0 +1,48 @@ +# Copyright © 2012-2023 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + +name: Testing + +on: + push: + branches: [ develop, release ] + paths: + - 'jrnl/**' + - 'features/**' + - 'tests/**' + - 'poetry.lock' + - 'pyproject.toml' + - '.github/workflows/testing_prs.yaml' + - 'tasks.py' + pull_request: + branches: [ develop ] + paths: + - 'jrnl/**' + - 'features/**' + - 'tests/**' + - 'poetry.lock' + - 'pyproject.toml' + - '.github/workflows/testing_prs.yaml' + - 'tasks.py' + +defaults: + run: + shell: bash # needed to prevent Windows from using PowerShell + +jobs: + test: + if: > + ! contains(github.event.head_commit.message, '[ci skip]') + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + 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 + - uses: actions/checkout@v4 + - name: Run tests + uses: ./.github/actions/run_tests + with: + cache-string: ${{ secrets.CACHE_STRING }} diff --git a/.github/workflows/testing_schedule.yaml b/.github/workflows/testing_schedule.yaml new file mode 100644 index 00000000..9791349c --- /dev/null +++ b/.github/workflows/testing_schedule.yaml @@ -0,0 +1,28 @@ +# Copyright © 2012-2023 jrnl contributors +# License: https://www.gnu.org/licenses/gpl-3.0.html + +name: Testing + +on: + schedule: + - cron: '0 0 * * SAT' + +defaults: + run: + shell: bash # needed to prevent Windows from using PowerShell + +jobs: + test_all: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + 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 + - uses: actions/checkout@v4 + - name: Run tests + uses: ./.github/actions/run_tests + with: + cache-string: ${{ secrets.CACHE_STRING }} diff --git a/.gitignore b/.gitignore index 41d2df7b..938692b0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,62 +1,63 @@ +# Byte-compiled DLL and Shared Library files *.py[cod] - -# C extensions *.so -.python-version # Packages *.egg -*.egg-info -dist -build -eggs -parts -bin -var -sdist -develop-eggs +*.egg-info/ .installed.cfg -lib64 +bin/ +build/ +develop-eggs/ +dist/ +eggs/ +lib64/ +parts/ +sdist/ +.tox/ +var/ +node_modules/ +__pycache__/ +.pytest_cache/ +.flakeheaven_cache/ + +# Versioning .python-version +.tool-versions # Installer logs -pip-log.txt .DS_Store .travis-solo Icon +pip-log.txt # Documentation _build _sources _static +coverage.xml +exp/ objects.inv searchindex.js -# MS Visual Studio (PyTools) -obj -*.pyproj -*.sln -*.suo - -# virtaulenv +# virtualenv +.venv*/ env/ env*/ venv*/ -.venv*/ -# PyCharm Project files -.idea/ - -# export testing directories -exp/ - -_extras/ -*.sublime-* -site/ - -.vscode/settings.json -coverage.xml -.vscode/launch.json -.coverage -.vscode/tasks.json -todo.txt +# Editor and IDE specific files +# Since contributors may want to user a variety of development tools it is +# recommended that editor specific file types be ignored globally by each +# contributor via a global gitignore. Instructions for setting up a global +# ignore file can be found here: +# https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files +# (Configuring ignored files for all repositories on your computer) +# Examples of such files are: +# MS Visual Studio (PyTools) +# obj +# *.suo +# PyCharm +# .idea/ +# VS Code +# .vscode/settings.json \ No newline at end of file diff --git a/readthedocs.yml b/.readthedocs.yaml similarity index 88% rename from readthedocs.yml rename to .readthedocs.yaml index f74f3d23..9ef346b7 100644 --- a/readthedocs.yml +++ b/.readthedocs.yaml @@ -5,6 +5,13 @@ # Required version: 2 +# Set the OS +build: + os: ubuntu-22.04 + tools: + python: "3" + + # Build documentation in the docs/ directory mkdocs: configuration: mkdocs.yml @@ -17,6 +24,5 @@ formats: # Optionally set the version of Python and requirements required to build your docs python: - version: 3.7 install: - requirements: docs_theme/requirements.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cee5260..ba714328 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,43 +2,439 @@ ## [Unreleased](https://github.com/jrnl-org/jrnl/) -[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v2.8.3...HEAD) +[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) + +**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:** -- Specify an alternate config file in the command line [\#1170](https://github.com/jrnl-org/jrnl/issues/1170) +- 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)) + +**Implemented enhancements:** + +- 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)) +- Search for entries with no tags or stars with `-not -starred` and `-not -tagged` [\#1663](https://github.com/jrnl-org/jrnl/pull/1663) ([cjcon90](https://github.com/cjcon90)) +- Refactor flow for easier access to some files \(avoid things like `jrnl.Journal.Journal` and `jrnl.jrnl` co-existing\) [\#1662](https://github.com/jrnl-org/jrnl/pull/1662) ([wren](https://github.com/wren)) +- Add more type hints [\#1642](https://github.com/jrnl-org/jrnl/pull/1642) ([outa](https://github.com/outa)) +- Add `rich` handler to debug logging [\#1627](https://github.com/jrnl-org/jrnl/pull/1627) ([wren](https://github.com/wren)) +- Rework Encryption to enable future support of other encryption methods [\#1602](https://github.com/jrnl-org/jrnl/pull/1602) ([wren](https://github.com/wren)) + +**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)) +- 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)) + +**Build:** + +- 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)) +- Add type hints [\#1614](https://github.com/jrnl-org/jrnl/pull/1614) ([outa](https://github.com/outa)) + +**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)) +- 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)) +- Document `-tagged`, `-not -tagged`, and `-not -starred` [\#1684](https://github.com/jrnl-org/jrnl/pull/1684) ([micahellison](https://github.com/micahellison)) +- Update documentation about privacy and security in VSCode [\#1680](https://github.com/jrnl-org/jrnl/pull/1680) ([giuseppedandrea](https://github.com/giuseppedandrea)) +- Update documentation on temporary files naming [\#1673](https://github.com/jrnl-org/jrnl/pull/1673) ([giuseppedandrea](https://github.com/giuseppedandrea)) +- Update docs to include time and title in arguments with `--edit` [\#1657](https://github.com/jrnl-org/jrnl/pull/1657) ([pconrad-fb](https://github.com/pconrad-fb)) +- Fix markup in "Advanced Usage" doc [\#1655](https://github.com/jrnl-org/jrnl/pull/1655) ([multani](https://github.com/multani)) +- Remove Windows 7 known issue since Windows 7 is no longer supported [\#1636](https://github.com/jrnl-org/jrnl/pull/1636) ([micahellison](https://github.com/micahellison)) + +**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 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)) + +## [v3.3](https://pypi.org/project/jrnl/v3.3/) (2022-10-29) + +[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v3.3-beta2...v3.3) + +**Implemented enhancements:** + +- Change default config to use journal key [\#1594](https://github.com/jrnl-org/jrnl/pull/1594) ([micahellison](https://github.com/micahellison)) +- Add machine readable --list output [\#1592](https://github.com/jrnl-org/jrnl/pull/1592) ([apainintheneck](https://github.com/apainintheneck)) + +**Fixed bugs:** + +- Fix bug for new `--list --format` options when no default journal is specified [\#1621](https://github.com/jrnl-org/jrnl/pull/1621) ([wren](https://github.com/wren)) +- Don't create empty file when attempting a YAML export to a non-existing folder [\#1600](https://github.com/jrnl-org/jrnl/pull/1600) ([outa](https://github.com/outa)) + +**Build:** + +- Update `.gitignore` [\#1604](https://github.com/jrnl-org/jrnl/pull/1604) ([wren](https://github.com/wren)) +- Fix Docs Accessibility Testing [\#1588](https://github.com/jrnl-org/jrnl/pull/1588) ([wren](https://github.com/wren)) +- Update to use renamed flag for `brew bump-formula-pr` [\#1587](https://github.com/jrnl-org/jrnl/pull/1587) ([wren](https://github.com/wren)) +- Update peter-evans/create-pull-request action to v4 [\#1585](https://github.com/jrnl-org/jrnl/pull/1585) ([renovate[bot]](https://github.com/apps/renovate)) +- Update actions/setup-python action to v4 [\#1583](https://github.com/jrnl-org/jrnl/pull/1583) ([renovate[bot]](https://github.com/apps/renovate)) +- Update actions/checkout action to v3 [\#1582](https://github.com/jrnl-org/jrnl/pull/1582) ([renovate[bot]](https://github.com/apps/renovate)) +- Update actions/cache action to v3 [\#1581](https://github.com/jrnl-org/jrnl/pull/1581) ([renovate[bot]](https://github.com/apps/renovate)) +- Replace Dependabot with Renovate [\#1575](https://github.com/jrnl-org/jrnl/pull/1575) ([renovate[bot]](https://github.com/apps/renovate)) + +**Documentation:** + +- Add documentation about how the editor must be a blocking process [\#1456](https://github.com/jrnl-org/jrnl/issues/1456) +- Document that editors must be blocking processes [\#1624](https://github.com/jrnl-org/jrnl/pull/1624) ([micahellison](https://github.com/micahellison)) +- Remove wrong option in configuration file reference [\#1618](https://github.com/jrnl-org/jrnl/pull/1618) ([DSiekmeier](https://github.com/DSiekmeier)) +- Update YAML export description in docs [\#1591](https://github.com/jrnl-org/jrnl/pull/1591) ([apainintheneck](https://github.com/apainintheneck)) +- Update dependency jinja2 to v3.1.2 [\#1579](https://github.com/jrnl-org/jrnl/pull/1579) ([renovate[bot]](https://github.com/apps/renovate)) +- Update dependency typed.js to v2.0.12 [\#1578](https://github.com/jrnl-org/jrnl/pull/1578) ([renovate[bot]](https://github.com/apps/renovate)) +- Add hint for how to get vi to go to end-of-file [\#1563](https://github.com/jrnl-org/jrnl/pull/1563) ([pjz](https://github.com/pjz)) + +**Packaging:** + +- Pin dependencies [\#1577](https://github.com/jrnl-org/jrnl/pull/1577) ([renovate[bot]](https://github.com/apps/renovate)) + +## [v3.2](https://pypi.org/project/jrnl/v3.2/) (2022-09-03) + +[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v3.2-beta...v3.2) + +**Implemented enhancements:** + +- Update issue & PR templates to use forms [\#1559](https://github.com/jrnl-org/jrnl/issues/1559) +- Suppress "Entry added" message if using default journal [\#1561](https://github.com/jrnl-org/jrnl/pull/1561) ([micahellison](https://github.com/micahellison)) +- Add message showing the number of search results [\#1524](https://github.com/jrnl-org/jrnl/pull/1524) ([apainintheneck](https://github.com/apainintheneck)) + +**Build:** + +- Quick fix follow up for actionlint [\#1565](https://github.com/jrnl-org/jrnl/pull/1565) ([wren](https://github.com/wren)) + +**Documentation:** + +- Remove note in contributing docs about gh-pages branch that we no longer use [\#1566](https://github.com/jrnl-org/jrnl/pull/1566) ([micahellison](https://github.com/micahellison)) + +## [v3.1](https://pypi.org/project/jrnl/v3.1/) (2022-08-21) + +[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v3.1-beta2...v3.1) + +**Implemented enhancements:** + +- Update tzlocal to v4.x and remove pytz dependency [\#1528](https://github.com/jrnl-org/jrnl/pull/1528) ([outa](https://github.com/outa)) +- Add linewrap option 'auto' [\#1507](https://github.com/jrnl-org/jrnl/pull/1507) ([jonakeys](https://github.com/jonakeys)) + +**Fixed bugs:** + +- Update formatting function to better account for indentation [\#1541](https://github.com/jrnl-org/jrnl/pull/1541) ([wren](https://github.com/wren)) +- Export to file\(s\) when first line/title of an entry is very long [\#1527](https://github.com/jrnl-org/jrnl/pull/1527) ([jonakeys](https://github.com/jonakeys)) +- Fixed index out of range error in fancy exporter [\#1522](https://github.com/jrnl-org/jrnl/pull/1522) ([apainintheneck](https://github.com/apainintheneck)) + +**Build:** + +- Add actionlint to testing pipelines [\#1555](https://github.com/jrnl-org/jrnl/pull/1555) ([wren](https://github.com/wren)) +- Fix docs pipeline, make docs tests easier to run locally and on different OSes [\#1554](https://github.com/jrnl-org/jrnl/pull/1554) ([wren](https://github.com/wren)) + +**Documentation:** + +- Reformat contributor appreciation on `--help` screen [\#1556](https://github.com/jrnl-org/jrnl/pull/1556) ([xeruf](https://github.com/xeruf)) +- Clean up copyright notices and version screen [\#1553](https://github.com/jrnl-org/jrnl/pull/1553) ([wren](https://github.com/wren)) + +**Packaging:** + +- Bump pyproject-flake8 from 0.0.1a4 to 0.0.1a5 [\#1552](https://github.com/jrnl-org/jrnl/pull/1552) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump keyring from 23.7.0 to 23.8.2 [\#1551](https://github.com/jrnl-org/jrnl/pull/1551) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump yq from 3.0.2 to 3.1.0 [\#1546](https://github.com/jrnl-org/jrnl/pull/1546) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump poethepoet from 0.15.0 to 0.16.0 [\#1542](https://github.com/jrnl-org/jrnl/pull/1542) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump keyring from 23.6.0 to 23.7.0 [\#1539](https://github.com/jrnl-org/jrnl/pull/1539) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump rich from 12.4.4 to 12.5.1 [\#1538](https://github.com/jrnl-org/jrnl/pull/1538) ([dependabot[bot]](https://github.com/apps/dependabot)) + +## [v3.0](https://pypi.org/project/jrnl/v3.0/) (2022-07-09) + +[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v3.0-beta2...v3.0) + +🚨 **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)) +- Rework how all output and messaging works in jrnl [\#1475](https://github.com/jrnl-org/jrnl/pull/1475) ([wren](https://github.com/wren)) +- Implement --change-time flag [\#1452](https://github.com/jrnl-org/jrnl/pull/1452) ([richardjs](https://github.com/richardjs)) +- Reformat additional messages and finish centralizing exception handling [\#1424](https://github.com/jrnl-org/jrnl/pull/1424) ([wren](https://github.com/wren)) +- Reformat messages and add new centralized exception handling [\#1417](https://github.com/jrnl-org/jrnl/pull/1417) ([wren](https://github.com/wren)) + +**Fixed bugs:** + +- Display message when no edits take place [\#1510](https://github.com/jrnl-org/jrnl/pull/1510) ([apainintheneck](https://github.com/apainintheneck)) +- Fixed error related to display\_format in config file for some values [\#1495](https://github.com/jrnl-org/jrnl/pull/1495) ([apainintheneck](https://github.com/apainintheneck)) +- Create folder if config ends with \(back\)slash [\#1492](https://github.com/jrnl-org/jrnl/pull/1492) ([jonakeys](https://github.com/jonakeys)) +- `-not` search parameter no longer opens editor [\#1490](https://github.com/jrnl-org/jrnl/pull/1490) ([apainintheneck](https://github.com/apainintheneck)) +- Fix TypeError when using debug flag [\#1484](https://github.com/jrnl-org/jrnl/pull/1484) ([jonakeys](https://github.com/jonakeys)) +- Prompt for password change when using 'jrnl --encrypt' on already encrypted journal [\#1477](https://github.com/jrnl-org/jrnl/pull/1477) ([jonakeys](https://github.com/jonakeys)) +- Always expand all paths \(journals, templates, etc\) [\#1468](https://github.com/jrnl-org/jrnl/pull/1468) ([apainintheneck](https://github.com/apainintheneck)) +- The `-not` option with no arguments now outputs error instead of stack trace [\#1466](https://github.com/jrnl-org/jrnl/pull/1466) ([apainintheneck](https://github.com/apainintheneck)) +- Give a proper message when trying to use an empty config file [\#1461](https://github.com/jrnl-org/jrnl/pull/1461) ([jonakeys](https://github.com/jonakeys)) +- 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)) + +**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)) +- Reduce difference between local and CI environments [\#1518](https://github.com/jrnl-org/jrnl/pull/1518) ([wren](https://github.com/wren)) +- Add bdd tests for jrnl installation [\#1513](https://github.com/jrnl-org/jrnl/pull/1513) ([apainintheneck](https://github.com/apainintheneck)) +- Stop hardcoding bot info in changelog pipeline [\#1506](https://github.com/jrnl-org/jrnl/pull/1506) ([wren](https://github.com/wren)) +- Fix Poetry caching for accessibility tests [\#1505](https://github.com/jrnl-org/jrnl/pull/1505) ([wren](https://github.com/wren)) +- Implement Tox for testing [\#1504](https://github.com/jrnl-org/jrnl/pull/1504) ([wren](https://github.com/wren)) +- Replace `make` with python alternative \(`poe`\) [\#1503](https://github.com/jrnl-org/jrnl/pull/1503) ([wren](https://github.com/wren)) +- Update copyright year [\#1502](https://github.com/jrnl-org/jrnl/pull/1502) ([wren](https://github.com/wren)) +- Add Python 3.11 to PR tests [\#1500](https://github.com/jrnl-org/jrnl/pull/1500) ([micahellison](https://github.com/micahellison)) +- Pin jinja2 in docs requirements to keep readthedocs builds from failing [\#1439](https://github.com/jrnl-org/jrnl/pull/1439) ([micahellison](https://github.com/micahellison)) +- Tidy up git ignore [\#1414](https://github.com/jrnl-org/jrnl/pull/1414) ([nelnog](https://github.com/nelnog)) + +**Documentation:** + +- Document --change-time in web-based docs' command line reference [\#1471](https://github.com/jrnl-org/jrnl/pull/1471) ([micahellison](https://github.com/micahellison)) + +**Packaging:** + +- Bump cryptography from 37.0.2 to 37.0.3 [\#1516](https://github.com/jrnl-org/jrnl/pull/1516) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump poethepoet from 0.13.1 to 0.14.0 [\#1514](https://github.com/jrnl-org/jrnl/pull/1514) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump keyring from 23.5.1 to 23.6.0 [\#1499](https://github.com/jrnl-org/jrnl/pull/1499) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump pyxdg from 0.27 to 0.28 [\#1497](https://github.com/jrnl-org/jrnl/pull/1497) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump keyring from 23.5.0 to 23.5.1 [\#1487](https://github.com/jrnl-org/jrnl/pull/1487) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump cryptography from 37.0.1 to 37.0.2 [\#1467](https://github.com/jrnl-org/jrnl/pull/1467) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump cryptography from 36.0.2 to 37.0.1 [\#1462](https://github.com/jrnl-org/jrnl/pull/1462) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump pytest from 7.1.1 to 7.1.2 [\#1458](https://github.com/jrnl-org/jrnl/pull/1458) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump pyproject-flake8 from 0.0.1a3 to 0.0.1a4 [\#1447](https://github.com/jrnl-org/jrnl/pull/1447) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump black from 22.1.0 to 22.3.0 [\#1442](https://github.com/jrnl-org/jrnl/pull/1442) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump mkdocs from 1.2.3 to 1.3.0 [\#1441](https://github.com/jrnl-org/jrnl/pull/1441) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump pyproject-flake8 from 0.0.1a2 to 0.0.1a3 [\#1440](https://github.com/jrnl-org/jrnl/pull/1440) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump pytz from 2021.3 to 2022.1 [\#1438](https://github.com/jrnl-org/jrnl/pull/1438) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump pytest from 7.0.1 to 7.1.1 [\#1430](https://github.com/jrnl-org/jrnl/pull/1430) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump cryptography from 36.0.1 to 36.0.2 [\#1427](https://github.com/jrnl-org/jrnl/pull/1427) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump yq from 2.13.0 to 2.14.0 [\#1418](https://github.com/jrnl-org/jrnl/pull/1418) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Replace PyYAML with ruamel.yaml [\#1416](https://github.com/jrnl-org/jrnl/pull/1416) ([micahellison](https://github.com/micahellison)) +- Bump pytest from 6.2.5 to 7.0.0 [\#1407](https://github.com/jrnl-org/jrnl/pull/1407) ([dependabot[bot]](https://github.com/apps/dependabot)) + +## [v2.8.4](https://pypi.org/project/jrnl/v2.8.4/) (2022-02-12) + +[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v2.8.4-beta2...v2.8.4) + +**Implemented enhancements:** + +- Add hash as a default tag symbol for new jrnl config file [\#1398](https://github.com/jrnl-org/jrnl/pull/1398) ([micahellison](https://github.com/micahellison)) - Add --config-file argument to use alternate config file at runtime [\#1290](https://github.com/jrnl-org/jrnl/pull/1290) ([samuelgregorovic](https://github.com/samuelgregorovic)) **Fixed bugs:** -- Support pytest-bdd 5 [\#1364](https://github.com/jrnl-org/jrnl/issues/1364) +- Certs broken on website [\#1408](https://github.com/jrnl-org/jrnl/issues/1408) +- Add added option to \_print\_edited\_summary [\#1366](https://github.com/jrnl-org/jrnl/pull/1366) ([piero-vic](https://github.com/piero-vic)) **Build:** +- Improve handling of mocking logic in pytest [\#1382](https://github.com/jrnl-org/jrnl/pull/1382) ([wren](https://github.com/wren)) +- Use full Python version for GitHub Actions cache key [\#1373](https://github.com/jrnl-org/jrnl/pull/1373) ([micahellison](https://github.com/micahellison)) - Use Python 3.10 stable in CI [\#1362](https://github.com/jrnl-org/jrnl/pull/1362) ([micahellison](https://github.com/micahellison)) - Switch from poetry to poetry-core [\#1359](https://github.com/jrnl-org/jrnl/pull/1359) ([fabaff](https://github.com/fabaff)) - Add more steps to `pytest`, fully remove `behave` [\#1347](https://github.com/jrnl-org/jrnl/pull/1347) ([wren](https://github.com/wren)) **Documentation:** -- Document folder journal and DayOne journal types [\#1326](https://github.com/jrnl-org/jrnl/issues/1326) -- Move and expand contributing.md content into docs site [\#1180](https://github.com/jrnl-org/jrnl/issues/1180) +- Fix styling on documentation sidebar [\#1395](https://github.com/jrnl-org/jrnl/pull/1395) ([wren](https://github.com/wren)) - Added Recipe for visualizing Markdown in the CLI [\#1354](https://github.com/jrnl-org/jrnl/pull/1354) ([viegasfh](https://github.com/viegasfh)) - Fix recipe 'Launch a terminal for rapid logging' [\#1351](https://github.com/jrnl-org/jrnl/pull/1351) ([zapateo](https://github.com/zapateo)) - Fix readme splash and add changelog link to readme [\#1339](https://github.com/jrnl-org/jrnl/pull/1339) ([micahellison](https://github.com/micahellison)) +- Add reference documentation to docs site and separate out "Tips and Tricks" and "External Editors" from "Recipes" [\#1332](https://github.com/jrnl-org/jrnl/pull/1332) ([micahellison](https://github.com/micahellison)) - Document journal types [\#1331](https://github.com/jrnl-org/jrnl/pull/1331) ([micahellison](https://github.com/micahellison)) **Packaging:** -- Bump black from 21.9b0 to 21.10b0 [\#1370](https://github.com/jrnl-org/jrnl/pull/1370) ([dependabot[bot]](https://github.com/apps/dependabot)) -- Bump pytest-bdd from 4.1.0 to 5.0.0 [\#1368](https://github.com/jrnl-org/jrnl/pull/1368) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump asteval from 0.9.25 to 0.9.26 [\#1400](https://github.com/jrnl-org/jrnl/pull/1400) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump black from 21.7b0 to 22.1.0 [\#1404](https://github.com/jrnl-org/jrnl/pull/1404) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump cryptography from 3.4.8 to 36.0.1 [\#1389](https://github.com/jrnl-org/jrnl/pull/1389) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump ipython from 7.28.0 to 7.31.1 [\#1401](https://github.com/jrnl-org/jrnl/pull/1401) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump keyring from 23.1.0 to 23.5.0 [\#1392](https://github.com/jrnl-org/jrnl/pull/1392) ([dependabot[bot]](https://github.com/apps/dependabot)) - Bump mkdocs from 1.2.2 to 1.2.3 [\#1355](https://github.com/jrnl-org/jrnl/pull/1355) ([dependabot[bot]](https://github.com/apps/dependabot)) -- Bump pytz from 2021.1 to 2021.3 [\#1348](https://github.com/jrnl-org/jrnl/pull/1348) ([dependabot[bot]](https://github.com/apps/dependabot)) -- Bump cryptography from 3.4.8 to 35.0.0 [\#1345](https://github.com/jrnl-org/jrnl/pull/1345) ([dependabot[bot]](https://github.com/apps/dependabot)) -- Bump black from 21.8b0 to 21.9b0 [\#1343](https://github.com/jrnl-org/jrnl/pull/1343) ([dependabot[bot]](https://github.com/apps/dependabot)) -- Bump keyring from 23.1.0 to 23.2.1 [\#1342](https://github.com/jrnl-org/jrnl/pull/1342) ([dependabot[bot]](https://github.com/apps/dependabot)) - Bump pytest from 6.2.4 to 6.2.5 [\#1334](https://github.com/jrnl-org/jrnl/pull/1334) ([dependabot[bot]](https://github.com/apps/dependabot)) -- Bump black from 21.7b0 to 21.8b0 [\#1333](https://github.com/jrnl-org/jrnl/pull/1333) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump pytest-bdd from 4.1.0 to 5.0.0 [\#1368](https://github.com/jrnl-org/jrnl/pull/1368) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump pytz from 2021.1 to 2021.3 [\#1348](https://github.com/jrnl-org/jrnl/pull/1348) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Bump yq from 2.12.2 to 2.13.0 [\#1385](https://github.com/jrnl-org/jrnl/pull/1385) ([dependabot[bot]](https://github.com/apps/dependabot)) ## [v2.8.3](https://pypi.org/project/jrnl/v2.8.3/) (2021-09-06) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index b177c666..68716f88 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -59,7 +59,7 @@ representative at an online or offline event. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by [emailing the maintainers](mailto:jrnl-sh@googlegroups.com). +reported by [emailing the maintainers](mailto:maintainers@jrnl.sh). All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 93b57d7e..dc078f3a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,8 @@ - + + # Contributing See "[Contributing](docs/contributing.md)" in the `docs` directory. diff --git a/Makefile b/Makefile deleted file mode 100644 index a9833c3e..00000000 --- a/Makefile +++ /dev/null @@ -1,39 +0,0 @@ -# A Makefile for commands I run frequently: - -clean: - rm -rf dist - rm -rf _static - rm -rf jrnl.egg-info - rm -rf _build - rm -rf _sources - rm -rf _static - rm -rf site/ - rm -f *.html - -html: - poetry run mkdocs serve - -format: ## Format files to match style - poetry run black . - -lint: ## Check style with various tools - poetry check - poetry run pflake8 jrnl tests - poetry run black --check --diff . - -unit: # unit tests - poetry run pytest tests/unit - -bdd: # bdd tests - poetry run pytest tests/bdd --gherkin-terminal-reporter --tb=native - -bdd-debug: # bdd tests - poetry run pytest tests/bdd --gherkin-terminal-reporter --tb=native -x -vv - -test: lint unit bdd - -build: - poetry build - -install: clean ## install the package to the active Python's site-packages - poetry install diff --git a/README.md b/README.md index cacd8dda..a99f0ba8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ + +
@@ -14,7 +19,7 @@ jrnl
====
_To get help, [submit an issue](https://github.com/jrnl-org/jrnl/issues/new/choose) on
-Github._
+GitHub._
`jrnl` is a simple journal application for the command line.
@@ -65,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](CONTRIBUTING.md).
+documentation](docs/contributing.md).
### Financial Backers
diff --git a/SECURITY.md b/SECURITY.md
index c239b957..44a0f958 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -1,6 +1,6 @@
# Security
-If you've discovered a potential security issue in jrnl, please contact the maintainers at [jrnl-sh@googlegroups.com](mailto:jrnl-sh@googlegroups.com).
+If you've discovered a potential security issue in jrnl, please contact the maintainers at [maintainers@jrnl.sh](mailto:maintainers@jrnl.sh).
You can also feel free to [open an issue](https://github.com/jrnl-org/jrnl/issues/new/choose) (but please don't disclose the vulnerability) in case the email goes to spam.
diff --git a/docs/advanced.md b/docs/advanced.md
index a9f1fb27..764ff98a 100644
--- a/docs/advanced.md
+++ b/docs/advanced.md
@@ -1,119 +1,27 @@
-
+
# Advanced Usage
## Configuration File
-You can configure the way jrnl behaves in a configuration file. By
-default, this is `~/.config/jrnl/jrnl.yaml`. If you have the `XDG_CONFIG_HOME`
-variable set, the configuration file will be saved as
-`$XDG_CONFIG_HOME/jrnl/jrnl.yaml`.
+`jrnl` has a wide variety of options that can be customized through the config file,
+including templates, formats, multiple journals, and more. See
+the [configuration file reference](./reference-config-file.md) for details
+or read on for some common use cases.
-!!! note
- On Windows, the configuration file is typically found at `%USERPROFILE%\.config\jrnl\jrnl.yaml`.
-
-The configuration file is a YAML file with the following options
-and can be edited with a plain text editor.
-
-!!! note
- Backup your journal and config file before editing. Changes to the config file
- can have destructive effects on your journal!
-
-- `journals`
- paths to your journal files
-- `editor`
- if set, executes this command to launch an external editor for
- writing your entries, e.g. `vim`. Some editors require special
- options to work properly, see `FAQ