From 3b0c7992d24da5a3ede0882a8825f6a579e7b6b0 Mon Sep 17 00:00:00 2001 From: Micah Jerome Ellison Date: Sat, 8 Jan 2022 12:36:58 -0800 Subject: [PATCH 1/5] Add weekly Saturday morning build and prevent Python 3.11 from running on PRs (#1387) * Add weekly Saturday morning build and prevent Python 3.11 from running on PRs * Fix extraneous greater than symbol * Add branches and paths to cron schedule * Add back missing hyphen before cron * Trying to fix YAML syntax error * Remove branches and paths from schedule * Fix invalid conditional, push 3.11 check down to actual tests like we did with 3.10 * Separate out PR tests and scheduled tests * Fix YAML syntax * Fix uses action reference * Use proper action folder structure * Check out repo before running local action * Specify bash shell and remove unneeded if * Specify shell for each run statement * Move secret out of composite action since it is not supported directly * Fix half-fixed previous commit * Remove extraneous ./ * Fix pathing and name steps * take out shell key from action * put back missing git config line in workflows Co-authored-by: Jonathan Wren --- .github/actions/run_tests/action.yaml | 61 ++++++++++++++++++ .github/workflows/testing.yaml | 84 ------------------------- .github/workflows/testing_prs.yaml | 43 +++++++++++++ .github/workflows/testing_schedule.yaml | 25 ++++++++ 4 files changed, 129 insertions(+), 84 deletions(-) create mode 100644 .github/actions/run_tests/action.yaml delete mode 100644 .github/workflows/testing.yaml create mode 100644 .github/workflows/testing_prs.yaml create mode 100644 .github/workflows/testing_schedule.yaml diff --git a/.github/actions/run_tests/action.yaml b/.github/actions/run_tests/action.yaml new file mode 100644 index 00000000..3f40f2fd --- /dev/null +++ b/.github/actions/run_tests/action.yaml @@ -0,0 +1,61 @@ +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@v2 + with: + python-version: ${{ matrix.python-version }} + + - 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@v2 + 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 install --remove-untracked + echo '::endgroup::' + + echo 'DEPS_INSTALLED=true' >> $GITHUB_ENV + shell: bash + + - name: Code formatting (Black) + if: ${{ env.DEPS_INSTALLED == 'true' }} + run: | + poetry run black --version + poetry run black --check --diff . + shell: bash + + - name: Code Style (flake8) + if: > + ${{ env.DEPS_INSTALLED == 'true' }} + run: | + poetry run pflake8 --version + poetry run pflake8 jrnl tests + shell: bash + + - name: Test with pytest + if: > + ${{ env.DEPS_INSTALLED == 'true' }} + run: poetry run pytest --junitxml=reports/pytest/results.xml + shell: bash diff --git a/.github/workflows/testing.yaml b/.github/workflows/testing.yaml deleted file mode 100644 index 27d839f2..00000000 --- a/.github/workflows/testing.yaml +++ /dev/null @@ -1,84 +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: Capture full Python version in env - run: echo "PYTHON_FULL_VERSION=$(python --version)" >> $GITHUB_ENV - - - name: poetry cache # Change CACHE_STRING secret to bust the cache - uses: actions/cache@v2 - with: - path: .venv - key: ${{ runner.os }}-${{ hashFiles('poetry.lock') }}-${{ env.PYTHON_FULL_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_prs.yaml b/.github/workflows/testing_prs.yaml new file mode 100644 index 00000000..aabe14b3 --- /dev/null +++ b/.github/workflows/testing_prs.yaml @@ -0,0 +1,43 @@ +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 }} + strategy: + fail-fast: false + matrix: + python-version: [ 3.7, 3.8, 3.9, '3.10' ] + os: [ ubuntu-latest, macos-latest, windows-latest ] + steps: + - run: git config --global core.autocrlf false + - uses: actions/checkout@v2 + - 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..72e47de4 --- /dev/null +++ b/.github/workflows/testing_schedule.yaml @@ -0,0 +1,25 @@ +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.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: Run tests + uses: ./.github/actions/run_tests + with: + cache-string: ${{ secrets.CACHE_STRING }} From 256aab9877356c5449854f3a4daa934bf6f0c402 Mon Sep 17 00:00:00 2001 From: Jrnl Bot Date: Sat, 8 Jan 2022 20:38:48 +0000 Subject: [PATCH 2/5] Update changelog [ci skip] --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ae9208ab..85c1f9a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [Unreleased](https://github.com/jrnl-org/jrnl/) + +[Full Changelog](https://github.com/jrnl-org/jrnl/compare/v2.8.4-beta1...HEAD) + +**Fixed bugs:** + +- Specifying 'today' does not filter by year, also returns entries from same date in prior years [\#1391](https://github.com/jrnl-org/jrnl/issues/1391) + ## [v2.8.4-beta1](https://pypi.org/project/jrnl/v2.8.4-beta1/) (2021-12-11) [Full Changelog](https://github.com/jrnl-org/jrnl/compare/v2.8.4-beta...v2.8.4-beta1) From bf757bdc9065769787daafbc895f42c03a35781e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 Jan 2022 12:43:09 -0800 Subject: [PATCH 3/5] Bump keyring from 23.4.0 to 23.5.0 (#1392) Bumps [keyring](https://github.com/jaraco/keyring) from 23.4.0 to 23.5.0. - [Release notes](https://github.com/jaraco/keyring/releases) - [Changelog](https://github.com/jaraco/keyring/blob/main/CHANGES.rst) - [Commits](https://github.com/jaraco/keyring/compare/v23.4.0...v23.5.0) --- updated-dependencies: - dependency-name: keyring dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index e1beaa9d..ee426a0c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -313,11 +313,11 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "keyring" -version = "23.4.0" +version = "23.5.0" description = "Store and access your passwords safely." category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" [package.dependencies] importlib-metadata = ">=3.6" @@ -1053,8 +1053,8 @@ jinja2 = [ {file = "Jinja2-3.0.2.tar.gz", hash = "sha256:827a0e32839ab1600d4eb1c4c33ec5a8edfbc5cb42dafa13b81f182f97784b45"}, ] keyring = [ - {file = "keyring-23.4.0-py3-none-any.whl", hash = "sha256:3dc0f66062a4f8f6f2ce30d6a516e6e623e6c3c2e76864204ceaf64695408f07"}, - {file = "keyring-23.4.0.tar.gz", hash = "sha256:88f206024295e3c6fb16bb0a60fb4bb7ec1185629dc5a729f12aa7c236d01387"}, + {file = "keyring-23.5.0-py3-none-any.whl", hash = "sha256:b0d28928ac3ec8e42ef4cc227822647a19f1d544f21f96457965dc01cf555261"}, + {file = "keyring-23.5.0.tar.gz", hash = "sha256:9012508e141a80bd1c0b6778d5c610dd9f8c464d75ac6774248500503f972fb9"}, ] mako = [ {file = "Mako-1.1.5-py2.py3-none-any.whl", hash = "sha256:6804ee66a7f6a6416910463b00d76a7b25194cd27f1918500c5bd7be2a088a23"}, From c4c60efab2ef9f1beb53c29e07306fd7865f47e5 Mon Sep 17 00:00:00 2001 From: Jrnl Bot Date: Sat, 8 Jan 2022 20:44:40 +0000 Subject: [PATCH 4/5] Update changelog [ci skip] --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85c1f9a9..0e21dfa0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ - Specifying 'today' does not filter by year, also returns entries from same date in prior years [\#1391](https://github.com/jrnl-org/jrnl/issues/1391) +**Packaging:** + +- Bump keyring from 23.4.0 to 23.5.0 [\#1392](https://github.com/jrnl-org/jrnl/pull/1392) ([dependabot[bot]](https://github.com/apps/dependabot)) + ## [v2.8.4-beta1](https://pypi.org/project/jrnl/v2.8.4-beta1/) (2021-12-11) [Full Changelog](https://github.com/jrnl-org/jrnl/compare/v2.8.4-beta...v2.8.4-beta1) From e7f24527c3c3ffa4d34f57e9466e8b465876275f Mon Sep 17 00:00:00 2001 From: Jonathan Wren Date: Sat, 8 Jan 2022 14:51:02 -0800 Subject: [PATCH 5/5] Fix styling on documentation sidebar (#1395) * fix sidebar stling in docs theme * don't display heading levels higher than 3 in sidebar * update sitemap step for easier debugging * add matrix so github doesn't get confused --- .github/workflows/docs.yaml | 17 +++++++++++++-- docs_theme/assets/theme.css | 42 ++++++++++++++++++------------------- 2 files changed, 35 insertions(+), 24 deletions(-) diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 3b8cfa96..ac85f2c0 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -22,6 +22,11 @@ jobs: accessibility: if: contains(toJson(github.event.commits), '[ci skip]') == false runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + python-version: [ 3.9 ] + os: [ ubuntu-latest ] steps: - uses: actions/checkout@v2 @@ -29,7 +34,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v2 with: - python-version: 3.9 + python-version: ${{ matrix.python-version }} - name: Setup Node.js environment uses: actions/setup-node@main @@ -61,8 +66,16 @@ jobs: env: site_url: http://127.0.0.1:8000 run: | + filename='sitemap.xml' 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 + + curl -s "${site_url}/${filename}" > $filename + + echo "::group::${filename}" + cat $filename + echo '::endgroup::' + + poetry run xq "$select" $filename > list.json - name: Accessibility testing (Pa11y) run: pa11y-ci -c list.json diff --git a/docs_theme/assets/theme.css b/docs_theme/assets/theme.css index d98392e8..20c4cd89 100644 --- a/docs_theme/assets/theme.css +++ b/docs_theme/assets/theme.css @@ -79,13 +79,28 @@ div.rst-content { max-width: 54em; } + .wy-side-nav-search, .wy-menu-vertical li.current, -.wy-menu-vertical li.toctree-l1.current > a { +.wy-menu-vertical li.toctree-l1.current > a, +.wy-menu-vertical li.toctree-l2.current > a, +.wy-menu-vertical li.toctree-l3.current > a { background-color: transparent; border: none; } +.wy-menu-vertical li.toctree-l2.current li.toctree-l3, +.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a { + background: transparent; +} + +.wy-menu-vertical li.toctree-l4, +.wy-menu-vertical li.toctree-l5, +.wy-menu-vertical li.toctree-l6, +.wy-menu-vertical li.toctree-l7 { + display: none; +} + .wy-nav-top { background-color: var(--mid-purple); background-image: linear-gradient(-211deg, var(--mid-purple) 0%, var(--dark-purple) 100%); @@ -118,6 +133,7 @@ a.icon-home:before { } .wy-menu-vertical a:hover, +.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a:hover, .wy-menu-vertical li.current a:hover { background-color: var(--black-shadow); color: var(--white); @@ -130,14 +146,10 @@ a.icon-home:before { position: relative; } -.wy-menu-vertical li.current > a.current { +.wy-menu-vertical li.toctree-l1.current > a { background: var(--darkest-purple); border: none !important; -} - -.wy-menu-vertical li.current > a:hover { - background: var(--darkest-purple); - border: none; + pointer-events: none; } .wy-menu-vertical li.on a, @@ -146,7 +158,7 @@ a.icon-home:before { } .wy-menu-vertical li.on a, -.wy-menu-vertical li.current>a:after { +.wy-menu-vertical li > a.current:after { position: absolute; right: 0em; z-index: 999; @@ -158,13 +170,6 @@ a.icon-home:before { border-right: 1em solid var(--white); } -.wy-menu-vertical li.toctree-l2.current { - font-size: 50px; -} - -.wy-menu-vertical li.toctree-l2.current > a{ -} - .toctree-expand:before { display: none !important; } @@ -192,7 +197,6 @@ a.icon-home:before { .wy-nav-side { background-color: var(--mid-purple); - background-image: linear-gradient(211deg, var(--mid-purple) 0%, var(--dark-purple) 100%); font-weight: 300; height: 100%; } @@ -223,14 +227,8 @@ form .search-query::placeholder { background: transparent; } -.toctree-l2 a:first-child { - display: block; -} - .wy-menu-vertical li.current ul { background-color: var(--mid-purple); - border-bottom: 1px solid var(--mid-purple); - border-top: 1px solid var(--dark-purple); }