diff --git a/.copier-answers.yml b/.copier-answers.yml index d4d01f3ce..929409549 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,6 +1,6 @@ # WARNING: Do not edit this file manually. # Any changes will be overwritten by Copier. -_commit: v0.10.1-41-g508666e +_commit: v0.11.0-7-gb5113cf _src_path: gh:easyscience/templates app_docs_url: https://easyscience.github.io/diffraction-app app_doi: 10.5281/zenodo.18163581 @@ -17,9 +17,8 @@ lib_python_min: '3.12' lib_repo_name: diffraction-lib project_contact_email: support@easydiffraction.org project_copyright_years: 2021-2026 -project_extended_description: A software for calculating neutron powder diffraction - patterns based on a structural model and refining its parameters against experimental - data +project_extended_description: A software for calculating diffraction patterns based + on a structural model and refining its parameters against experimental data project_name: EasyDiffraction project_short_description: Diffraction data analysis project_shortcut: ED diff --git a/.github/actions/download-artifact/action.yml b/.github/actions/download-artifact/action.yml index e4fd62f50..d1fff1a06 100644 --- a/.github/actions/download-artifact/action.yml +++ b/.github/actions/download-artifact/action.yml @@ -1,5 +1,5 @@ name: 'Download artifact' -description: 'Generic wrapper for actions/download-artifact' +description: 'Wrapper for actions/download-artifact' inputs: name: description: 'Name of the artifact to download' @@ -39,7 +39,7 @@ runs: using: 'composite' steps: - name: Download artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: ${{ inputs.name }} path: ${{ inputs.path }} diff --git a/.github/actions/github-script/action.yml b/.github/actions/github-script/action.yml index ab32da567..50de89b71 100644 --- a/.github/actions/github-script/action.yml +++ b/.github/actions/github-script/action.yml @@ -13,7 +13,7 @@ inputs: runs: using: 'composite' steps: - - uses: actions/github-script@v8 + - uses: actions/github-script@v9 with: script: ${{ inputs.script }} github-token: ${{ inputs.github-token }} diff --git a/.github/actions/setup-easyscience-bot/action.yml b/.github/actions/setup-easyscience-bot/action.yml index 4b28eaf8a..e51eb01ac 100644 --- a/.github/actions/setup-easyscience-bot/action.yml +++ b/.github/actions/setup-easyscience-bot/action.yml @@ -22,9 +22,9 @@ runs: steps: - name: Create GitHub App installation token id: app-token - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 with: - app-id: ${{ inputs.app-id }} + client-id: ${{ inputs.app-id }} private-key: ${{ inputs.private-key }} repositories: ${{ inputs.repositories }} diff --git a/.github/actions/setup-pixi/action.yml b/.github/actions/setup-pixi/action.yml index 167ee6233..ec7d7ba7b 100644 --- a/.github/actions/setup-pixi/action.yml +++ b/.github/actions/setup-pixi/action.yml @@ -1,5 +1,5 @@ name: 'Setup Pixi Environment' -description: 'Sets up pixi with common configuration' +description: 'Wrapper for prefix-dev/setup-pixi' inputs: environments: description: 'Pixi environments to setup' diff --git a/.github/actions/upload-artifact/action.yml b/.github/actions/upload-artifact/action.yml index 825ac396c..fe8e46807 100644 --- a/.github/actions/upload-artifact/action.yml +++ b/.github/actions/upload-artifact/action.yml @@ -1,5 +1,5 @@ name: 'Upload artifact' -description: 'Generic wrapper for actions/upload-artifact' +description: 'Wrapper for actions/upload-artifact' inputs: name: description: 'Artifact name' @@ -38,7 +38,7 @@ runs: using: 'composite' steps: - name: Upload artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: ${{ inputs.name }} path: ${{ inputs.path }} diff --git a/.github/actions/upload-codecov/action.yml b/.github/actions/upload-codecov/action.yml index 37d6298aa..0cb15d1fa 100644 --- a/.github/actions/upload-codecov/action.yml +++ b/.github/actions/upload-codecov/action.yml @@ -1,5 +1,5 @@ name: 'Upload coverage to Codecov' -description: 'Generic wrapper for codecov/codecov-action@v5' +description: 'Wrapper for codecov/codecov-action' inputs: name: @@ -32,7 +32,7 @@ inputs: runs: using: composite steps: - - uses: codecov/codecov-action@v5 + - uses: codecov/codecov-action@v6 with: name: ${{ inputs.name }} flags: ${{ inputs.flags }} diff --git a/.github/scripts/publish-dashboard.sh b/.github/scripts/publish-dashboard.sh new file mode 100644 index 000000000..dcbd0b320 --- /dev/null +++ b/.github/scripts/publish-dashboard.sh @@ -0,0 +1,77 @@ +#!/usr/bin/env bash + +set -euo pipefail + +remote_repository="${DASHBOARD_REMOTE_REPOSITORY:?}" +publish_branch="${DASHBOARD_PUBLISH_BRANCH:-master}" +source_dir="${DASHBOARD_SOURCE_DIR:?}" +token="${DASHBOARD_TOKEN:?}" +git_user_name="${DASHBOARD_GIT_USER_NAME:-easyscience[bot]}" +git_user_email="${DASHBOARD_GIT_USER_EMAIL:?}" +commit_message="${DASHBOARD_COMMIT_MESSAGE:?}" +max_attempts="${DASHBOARD_PUSH_ATTEMPTS:-3}" +delay_seconds="${DASHBOARD_PUSH_DELAY_SECONDS:-15}" + +workspace_dir="$(mktemp -d)" +repo_dir="${workspace_dir}/dashboard" +remote_url="https://x-access-token:${token}@github.com/${remote_repository}.git" + +cleanup() { + rm -rf "${workspace_dir}" +} + +prepare_worktree() { + if [[ ! -d "${repo_dir}/.git" ]]; then + git clone --branch "${publish_branch}" --depth 1 "${remote_url}" "${repo_dir}" + else + git -C "${repo_dir}" fetch origin "${publish_branch}" + git -C "${repo_dir}" checkout "${publish_branch}" + git -C "${repo_dir}" reset --hard "origin/${publish_branch}" + git -C "${repo_dir}" clean -fd + fi + + git -C "${repo_dir}" config user.name "${git_user_name}" + git -C "${repo_dir}" config user.email "${git_user_email}" +} + +sync_publish_dir() { + cp -R "${source_dir}/." "${repo_dir}/" + git -C "${repo_dir}" add . + + if git -C "${repo_dir}" diff --cached --quiet; then + return 1 + fi + + git -C "${repo_dir}" commit -m "${commit_message}" +} + +trap cleanup EXIT + +prepare_worktree + +if ! sync_publish_dir; then + echo "No dashboard changes to publish." + exit 0 +fi + +for ((attempt = 1; attempt <= max_attempts; attempt += 1)); do + if git -C "${repo_dir}" push origin "HEAD:${publish_branch}"; then + echo "Dashboard published on attempt ${attempt}." + exit 0 + fi + + if ((attempt == max_attempts)); then + echo "Dashboard publish failed after ${max_attempts} attempts." >&2 + exit 1 + fi + + echo "Dashboard push attempt ${attempt} failed. Retrying in ${delay_seconds}s." >&2 + sleep "${delay_seconds}" + + prepare_worktree + + if ! sync_publish_dir; then + echo "Dashboard changes already exist in the target repository." + exit 0 + fi +done \ No newline at end of file diff --git a/.github/workflows/backmerge.yml b/.github/workflows/backmerge.yml index d8569f058..36ce6f547 100644 --- a/.github/workflows/backmerge.yml +++ b/.github/workflows/backmerge.yml @@ -20,11 +20,6 @@ concurrency: group: backmerge-master-into-develop cancel-in-progress: false -# Opt into Node.js 24 for all JavaScript actions. -# Remove once all referenced actions natively target Node 24. -env: - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true - jobs: backmerge: runs-on: ubuntu-latest @@ -32,7 +27,7 @@ jobs: steps: - name: Checkout repository (for local actions) - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Setup easyscience[bot] id: bot @@ -43,7 +38,7 @@ jobs: repositories: ${{ github.event.repository.name }} - name: Checkout repository (with bot token) - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 token: ${{ steps.bot.outputs.token }} diff --git a/.github/workflows/cleanup.yml b/.github/workflows/cleanup.yml index d3ebf3a20..21c72b38d 100644 --- a/.github/workflows/cleanup.yml +++ b/.github/workflows/cleanup.yml @@ -15,11 +15,11 @@ on: days: description: 'Number of days.' required: true - default: 30 + default: '30' minimum_runs: description: 'The minimum runs to keep for each workflow.' required: true - default: 6 + default: '6' delete_workflow_pattern: description: 'The name or filename of the workflow. if not set then it will target all @@ -61,11 +61,6 @@ on: - 'false' - 'true' -# Opt into Node.js 24 for all JavaScript actions. -# Remove once all referenced actions natively target Node 24. -env: - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true - jobs: del-runs: runs-on: ubuntu-latest diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 1ad931394..95c190c63 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -26,9 +26,6 @@ concurrency: # Set the environment variables to be used in all jobs defined in this workflow env: CI_BRANCH: ${{ github.head_ref || github.ref_name }} - # Opt into Node.js 24 for all JavaScript actions. - # Remove once all referenced actions natively target Node 24. - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: # Job 1: Run docstring coverage @@ -37,7 +34,7 @@ jobs: steps: - name: Check-out repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Set up pixi uses: ./.github/actions/setup-pixi @@ -51,7 +48,7 @@ jobs: steps: - name: Check-out repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Set up pixi uses: ./.github/actions/setup-pixi @@ -74,7 +71,7 @@ jobs: steps: - name: Check-out repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Set up pixi uses: ./.github/actions/setup-pixi diff --git a/.github/workflows/dashboard.yml b/.github/workflows/dashboard.yml index 685134276..9d1f2b0bd 100644 --- a/.github/workflows/dashboard.yml +++ b/.github/workflows/dashboard.yml @@ -7,6 +7,10 @@ on: permissions: contents: read +concurrency: + group: dashboard-publish-${{ github.repository }} + cancel-in-progress: false + # Set the environment variables to be used in all jobs defined in this workflow env: CI_BRANCH: ${{ github.head_ref || github.ref_name }} @@ -14,9 +18,6 @@ env: DEVELOP_BRANCH: develop REPO_OWNER: ${{ github.repository_owner }} REPO_NAME: ${{ github.event.repository.name }} - # Opt into Node.js 24 for all JavaScript actions. - # Remove once all referenced actions natively target Node 24. - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: dashboard: @@ -24,7 +25,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 @@ -84,22 +85,25 @@ jobs: ${{ github.event.repository.name }} dashboard - # Publish to external dashboard repository with retry logic. + # Push to external dashboard repository with retry logic. # Retry is needed to handle transient GitHub API/authentication issues # that occasionally cause 403 errors when multiple workflows push concurrently. # Uses personal_token (not github_token) as GITHUB_TOKEN cannot access external repos. - - name: Publish to main branch of ${{ github.repository }} - uses: Wandalen/wretry.action@v3.8.0 - with: - attempt_limit: 3 - attempt_delay: 15000 # 15 seconds between retries - action: peaceiris/actions-gh-pages@v4 - with: | - publish_dir: ./_dashboard_publish - keep_files: true - external_repository: ${{ env.REPO_OWNER }}/dashboard - publish_branch: master - personal_token: ${{ steps.bot.outputs.token }} + - name: + Push to ${{ env.REPO_OWNER }}/dashboard/${{ env.REPO_NAME }}/${{ env.CI_BRANCH + }} + shell: bash + env: + DASHBOARD_COMMIT_MESSAGE: ${{ env.CI_BRANCH }} + DASHBOARD_GIT_USER_EMAIL: + ${{ vars.EASYSCIENCE_APP_ID }}+easyscience[bot]@users.noreply.github.com + DASHBOARD_PUSH_ATTEMPTS: '3' + DASHBOARD_PUSH_DELAY_SECONDS: '15' + DASHBOARD_PUBLISH_BRANCH: master + DASHBOARD_REMOTE_REPOSITORY: ${{ env.REPO_OWNER }}/dashboard + DASHBOARD_SOURCE_DIR: ./_dashboard_publish + DASHBOARD_TOKEN: ${{ steps.bot.outputs.token }} + run: bash ./.github/scripts/publish-dashboard.sh - name: Add dashboard link to summary run: | diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 870d6529f..117416a3f 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -48,9 +48,6 @@ env: IS_RELEASE_TAG: ${{ startsWith(github.ref, 'refs/tags/v') }} GITHUB_REPOSITORY: ${{ github.repository }} NOTEBOOKS_DIR: tutorials - # Opt into Node.js 24 for all JavaScript actions. - # Remove once all referenced actions natively target Node 24. - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: # Single job that builds and deploys documentation. @@ -86,7 +83,7 @@ jobs: # Check out the repository source code. # Note: The gh-pages branch is fetched separately later for mike deployment. - name: Checkout repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 # Activate dark mode to create documentation with Plotly charts in dark mode # Need a better solution to automatically switch the chart colour theme based on the mkdocs material switcher diff --git a/.github/workflows/issues-labels.yml b/.github/workflows/issues-labels.yml index ed9d1c8ba..31a69ad20 100644 --- a/.github/workflows/issues-labels.yml +++ b/.github/workflows/issues-labels.yml @@ -11,11 +11,6 @@ on: permissions: issues: write -# Opt into Node.js 24 for all JavaScript actions. -# Remove once all referenced actions natively target Node 24. -env: - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true - jobs: check-labels: if: github.actor != 'easyscience[bot]' @@ -28,7 +23,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Setup easyscience[bot] id: bot diff --git a/.github/workflows/lint-format.yml b/.github/workflows/lint-format.yml index 720c9a4ab..16dd95c95 100644 --- a/.github/workflows/lint-format.yml +++ b/.github/workflows/lint-format.yml @@ -34,9 +34,6 @@ permissions: # Set the environment variables to be used in all jobs defined in this workflow env: CI_BRANCH: ${{ github.head_ref || github.ref_name }} - # Opt into Node.js 24 for all JavaScript actions. - # Remove once all referenced actions natively target Node 24. - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: lint-format: @@ -44,7 +41,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Set up pixi uses: ./.github/actions/setup-pixi diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index 263d2200b..c51b8f865 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -10,11 +10,6 @@ on: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: -# Opt into Node.js 24 for all JavaScript actions. -# Remove once all referenced actions natively target Node 24. -env: - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true - jobs: pypi-publish: runs-on: ubuntu-latest @@ -25,7 +20,7 @@ jobs: steps: - name: Check-out repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 # full history with tags to get the version number by versioningit diff --git a/.github/workflows/pypi-test.yml b/.github/workflows/pypi-test.yml index a472c1d1f..8266285b1 100644 --- a/.github/workflows/pypi-test.yml +++ b/.github/workflows/pypi-test.yml @@ -20,9 +20,6 @@ permissions: env: CI_BRANCH: ${{ github.head_ref || github.ref_name }} DEFAULT_BRANCH: ${{ github.event.repository.default_branch }} - # Opt into Node.js 24 for all JavaScript actions. - # Remove once all referenced actions natively target Node 24. - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: # Job 1: Test installation from PyPI on multiple OS @@ -35,7 +32,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Set up pixi uses: ./.github/actions/setup-pixi diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml index 3a7cf92ee..a8f7761a7 100644 --- a/.github/workflows/release-notes.yml +++ b/.github/workflows/release-notes.yml @@ -10,11 +10,6 @@ on: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: -# Opt into Node.js 24 for all JavaScript actions. -# Remove once all referenced actions natively target Node 24. -env: - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true - jobs: draft-release-notes: permissions: @@ -25,7 +20,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 # full history with tags to get the version number @@ -66,7 +61,7 @@ jobs: GITHUB_TOKEN: ${{ steps.bot.outputs.token }} - name: Create GitHub draft release - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@v3 with: draft: true tag_name: ${{ steps.draft.outputs.tag_name }} diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 5694a2a0a..0e716c27e 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -24,16 +24,13 @@ permissions: env: DEFAULT_BRANCH: ${{ github.event.repository.default_branch }} SOURCE_BRANCH: ${{ inputs.source_branch || 'develop' }} - # Opt into Node.js 24 for all JavaScript actions. - # Remove once all referenced actions natively target Node 24. - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: create-pull-request: runs-on: ubuntu-latest steps: - name: Checkout ${{ env.SOURCE_BRANCH }} branch - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: ref: ${{ env.SOURCE_BRANCH }} diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index a53e9afc0..0f43db357 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -44,11 +44,6 @@ permissions: contents: read security-events: write -# Opt into Node.js 24 for all JavaScript actions. -# Remove once all referenced actions natively target Node 24. -env: - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true - jobs: codeql: name: Code scanning @@ -66,13 +61,13 @@ jobs: # focused on the active dev branch. - name: Checkout repository (scheduled → develop) if: ${{ github.event_name == 'schedule' }} - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: ref: develop - name: Checkout repository if: ${{ github.event_name != 'schedule' }} - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Initialize CodeQL uses: github/codeql-action/init@v4 diff --git a/.github/workflows/test-trigger.yml b/.github/workflows/test-trigger.yml index f4a39e93d..440bae3c1 100644 --- a/.github/workflows/test-trigger.yml +++ b/.github/workflows/test-trigger.yml @@ -10,18 +10,13 @@ on: permissions: contents: read -# Opt into Node.js 24 for all JavaScript actions. -# Remove once all referenced actions natively target Node 24. -env: - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true - jobs: code-tests-trigger: runs-on: ubuntu-latest steps: - name: Checkout develop branch - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: ref: develop diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 801b8803f..d0298f95b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -46,9 +46,6 @@ env: CI_BRANCH: ${{ github.head_ref || github.ref_name }} PY_VERSIONS: '3.12 3.14' PIXI_ENVS: 'py-312-env py-314-env' - # Opt into Node.js 24 for all JavaScript actions. - # Remove once all referenced actions natively target Node 24. - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: # Job 1: Set up environment variables @@ -83,7 +80,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Set up pixi uses: ./.github/actions/setup-pixi @@ -187,7 +184,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Download package (incl. extras) from previous job uses: ./.github/actions/download-artifact diff --git a/.github/workflows/tutorial-tests-colab.yaml b/.github/workflows/tutorial-tests-colab.yaml index 30966aaaa..96bc7e856 100644 --- a/.github/workflows/tutorial-tests-colab.yaml +++ b/.github/workflows/tutorial-tests-colab.yaml @@ -24,22 +24,4 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v5 - - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - - name: Upgrade package installer for Python - run: python -m pip install --upgrade pip - - - name: Install Python dependencies - run: - python -m pip install 'easydiffraction[visualization]' nbconvert nbmake pytest - pytest-xdist - - - name: Check if Jupyter Notebooks run without errors - run: > - python -m pytest --nbmake docs/tutorials/ --nbmake-timeout=1200 --color=yes - -n=auto + uses: actions/checkout@v6 diff --git a/.github/workflows/tutorial-tests-trigger.yml b/.github/workflows/tutorial-tests-trigger.yml index f28d65279..4b160d87d 100644 --- a/.github/workflows/tutorial-tests-trigger.yml +++ b/.github/workflows/tutorial-tests-trigger.yml @@ -10,18 +10,13 @@ on: permissions: contents: read -# Opt into Node.js 24 for all JavaScript actions. -# Remove once all referenced actions natively target Node 24. -env: - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true - jobs: tutorial-tests-trigger: runs-on: ubuntu-latest steps: - name: Checkout develop branch - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: ref: develop diff --git a/.github/workflows/tutorial-tests.yml b/.github/workflows/tutorial-tests.yml index 34a5c955c..f924a31d3 100644 --- a/.github/workflows/tutorial-tests.yml +++ b/.github/workflows/tutorial-tests.yml @@ -27,9 +27,6 @@ concurrency: # Set the environment variables to be used in all jobs defined in this workflow env: CI_BRANCH: ${{ github.head_ref || github.ref_name }} - # Opt into Node.js 24 for all JavaScript actions. - # Remove once all referenced actions natively target Node 24. - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: # Job 1: Test tutorials as scripts and notebooks on multiple OS @@ -43,7 +40,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Set up pixi uses: ./.github/actions/setup-pixi diff --git a/README.md b/README.md index a9fccc670..c6b665d17 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,9 @@

-**EasyDiffraction** is a software for calculating neutron powder -diffraction patterns based on a structural model and refining its -parameters against experimental data. +**EasyDiffraction** is a software for calculating diffraction patterns +based on a structural model and refining its parameters against +experimental data. diff --git a/docs/docs/introduction/index.md b/docs/docs/introduction/index.md index ee1d21598..1a49f004c 100644 --- a/docs/docs/introduction/index.md +++ b/docs/docs/introduction/index.md @@ -6,9 +6,9 @@ icon: material/information-slab-circle ## Description -**EasyDiffraction** is a software for calculating neutron powder -diffraction patterns based on a structural model and refining its -parameters against experimental data. +**EasyDiffraction** is a software for calculating diffraction patterns +based on a structural model and refining its parameters against +experimental data. **EasyDiffraction** is developed both as a Python library and as a cross-platform desktop application. diff --git a/pixi.lock b/pixi.lock index f8b9014ef..36a2ecb00 100644 --- a/pixi.lock +++ b/pixi.lock @@ -4583,8 +4583,8 @@ packages: requires_python: '>=3.5' - pypi: ./ name: easydiffraction - version: 0.14.0+dev4 - sha256: fcc831ee2076ab9377f805e04d80a9de366848727833e83232d309f9b440d0f4 + version: 0.15.0+devdirty9 + sha256: ea566085dad9a9e2b2a0916bd7af16841d1af477107460060da3446971d2c2ad requires_dist: - asciichartpy - asteval diff --git a/pyproject.toml b/pyproject.toml index b81b82af6..c0943384c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -218,7 +218,6 @@ preview = true # Enable new rules that are not yet stable, like DOC docstring-code-format = true # Whether to format code snippets in docstrings docstring-code-line-length = 72 # Line length for code snippets in docstrings indent-style = 'space' # PEP 8 recommends using spaces over tabs -line-ending = 'lf' # Line endings will be converted to \n quote-style = 'single' # But double quotes in docstrings (PEP 8, PEP 257) # Linting rules to use with Ruff diff --git a/tools/license_headers.py b/tools/license_headers.py index 47d235242..f276ca1b1 100644 --- a/tools/license_headers.py +++ b/tools/license_headers.py @@ -25,7 +25,9 @@ def load_pyproject(repo_path: Union[str, Path]) -> dict[str, Any]: - """Load and return parsed ``pyproject.toml`` data for the repository.""" + """ + Load and return parsed ``pyproject.toml`` data for the repository. + """ repo_root = find_repository_root(repo_path) pyproject_path = repo_root / 'pyproject.toml' @@ -56,7 +58,9 @@ def get_exclude_patterns( exclude_values: list[str], exclude_from_pyproject_toml: Optional[str], ) -> list[str]: - """Return normalized exclude patterns from CLI and ``pyproject.toml``.""" + """ + Return normalized exclude patterns from CLI and ``pyproject.toml``. + """ pyproject_data = load_pyproject(repo_path) patterns: list[str] = [] @@ -119,7 +123,9 @@ def get_file_creation_year(file_path: Union[str, Path]) -> str: def get_org_url(repo_path: Union[str, Path]) -> str: - """Return the organization URL derived from the repository source URL.""" + """ + Return the organization URL derived from the repository source URL. + """ pyproject_data = load_pyproject(repo_path) repo_url = pyproject_data['project']['urls']['Source Code'] return repo_url.rsplit('/', 1)[0]