Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
49724bf
Apply templates
AndrewSazonov Mar 2, 2026
30a6c01
Change spdx header. Clean up
AndrewSazonov Mar 2, 2026
f37375b
Move old examples to legacy/
AndrewSazonov Mar 2, 2026
f3d3350
Add back package init. Switch to importlib version
AndrewSazonov Mar 2, 2026
0ee0fac
Remove io package initializer (fixes 'visualization' is not defined)
AndrewSazonov Mar 2, 2026
0da0120
Fix spdx header
AndrewSazonov Mar 2, 2026
5a2d2dc
Mark fitting tests as fast
AndrewSazonov Mar 2, 2026
44fc492
Enable some Ruff checks
AndrewSazonov Mar 2, 2026
2aff2b5
Update API reference docs section
AndrewSazonov Mar 2, 2026
0633a69
Expand API reference index
AndrewSazonov Mar 2, 2026
8d12864
Update Copier answers to corelib metadata
AndrewSazonov Mar 2, 2026
978a6df
Apply updated templates
AndrewSazonov Mar 2, 2026
da43870
Remove legacy workflow
AndrewSazonov Mar 2, 2026
d159147
Apply new templates
AndrewSazonov Mar 2, 2026
949de4f
Apply new templates and fix copier paths
AndrewSazonov Mar 2, 2026
a1bb3ea
Update pixi lock
AndrewSazonov Mar 2, 2026
dc48996
Add QENS and SANS fitting tutorials to docs
AndrewSazonov Mar 2, 2026
7684177
Enable widget backend; stub User Guide
AndrewSazonov Mar 3, 2026
7cedddf
Enable MathJax equation rendering in docs
AndrewSazonov Mar 3, 2026
aa5acf3
Update docs logos and favicon
AndrewSazonov Mar 3, 2026
31b85d4
Apply new notebook template and Pixi kernel
AndrewSazonov Mar 3, 2026
e830a54
Fix equation rendering in docs with MathJax
AndrewSazonov Mar 3, 2026
25de8ed
Rename Getting Started to Workshops & Schools
AndrewSazonov Mar 3, 2026
6cf0a60
Trigger docs build (temporary)
AndrewSazonov Mar 3, 2026
a73c9ad
Revert "Trigger docs build (temporary)"
AndrewSazonov Mar 3, 2026
76ae24b
Add Python 3.14 and update templates
AndrewSazonov Mar 3, 2026
f9be8f6
Revert "Add Python 3.14 and update templates"
AndrewSazonov Mar 3, 2026
1480a8d
Update Copier template to v0.8.0
AndrewSazonov Mar 3, 2026
5b3e04a
Reapply templates
AndrewSazonov Mar 4, 2026
2b93f58
Apply templates 0.9.0
AndrewSazonov Mar 5, 2026
48aa480
Update pix lock
AndrewSazonov Mar 5, 2026
46346ab
Apply templates 0.10.0
AndrewSazonov Mar 5, 2026
57181ae
Update SPDX headers
AndrewSazonov Mar 5, 2026
c1bcbb6
Merge branch 'develop' into apply-new-templates
AndrewSazonov Mar 5, 2026
4e8d67a
Remove legacy workflows and version file
AndrewSazonov Mar 5, 2026
d6a19b2
Remove duplicate license section in README
AndrewSazonov Mar 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions .badgery.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
default_branch: master
develop_branch: develop

cards:
- group: Tests
type: gh_action
title: Code/package tests (GitHub)
file: test.yml
enabled: true
- group: Tests
type: gh_action
title: Tutorial tests (GitHub)
file: tutorial-tests.yml
enabled: true

- group: Tests
type: gh_action
title: Package tests (PyPI)
file: pypi-test.yml
enabled: true

- group: Code Quality
type: codefactor
title: Code quality (CodeFactor)
enabled: true

- group: Code Quality
type: radon_mi
title: Maintainability index (radon)
report: reports/{branch}/maintainability-index.json
enabled: true

- group: Code Quality
type: radon_cc
title: Cyclomatic complexity (radon)
report: reports/{branch}/cyclomatic-complexity.json
enabled: true

- group: Size
type: radon_loc
title: Source/Logical lines of code (radon)
report: reports/{branch}/raw-metrics.json
enabled: true

- group: Size
type: radon_ff
title: Functions/Files count (radon)
report: reports/{branch}/cyclomatic-complexity.json
enabled: true

- group: Coverage
type: codecov
title: Unit test coverage (Codecov)
flag: unittests
enabled: true

- group: Coverage
type: interrogate
title: Docstring coverage (interrogate)
report: reports/{branch}/coverage-docstring.txt
enabled: true
- group: Build & Release
type: gh_action
title: Publishing (PyPI)
workflow: pypi-publish.yml
enabled: true

- group: Build & Release
type: gh_action
title: Docs build/deployment
workflow: docs.yml
enabled: true
10 changes: 5 additions & 5 deletions .codecov.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
github_checks:
annotations: true
annotations: true
comment:
layout: "reach, diff, flags, files"
layout: 'reach, diff, flags, files'
behavior: default
require_changes: false # if true: only post the comment if coverage changes
require_base: no # [yes :: must have a base report to post]
require_head: yes # [yes :: must have a head report to post]
require_changes: false # if true: only post the comment if coverage changes
require_base: no # [yes :: must have a base report to post]
require_head: yes # [yes :: must have a head report to post]
32 changes: 20 additions & 12 deletions .copier-answers.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,20 @@
# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY
_commit: 1b51781
_src_path: gh:/EasyScience/EasyProjectTemplate
description: Core foundation of the EasyScience family of projects, providing the
building blocks for libraries and applications
max_python: '3.12'
min_python: '3.8'
orgname: EasyScience
packagename: easyscience
prettyname: Easyscience
projectname: EasyScience
year: 2024
# WARNING: Do not edit this file manually.
# Any changes will be overwritten by Copier.
_commit: v0.10.0
_src_path: gh:easyscience/templates
lib_docs_url: https://easyscience.github.io/core
lib_doi: 10.5281/zenodo.18163581
lib_package_name: easyscience
lib_python_max: '3.13'
lib_python_min: '3.11'
lib_repo_name: core
project_contact_email: support@easyscience.org
project_copyright_years: 2021-2026
project_extended_description: The foundation of the framework, providing reusable
building blocks for scientific libraries and applications aimed at making data
analysis easier
project_name: EasyScience
project_short_description: Core building blocks for EasyScience
project_shortcut: ES
project_type: lib
template_type: lib
50 changes: 50 additions & 0 deletions .github/actions/download-artifact/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: 'Download artifact'
description: 'Generic wrapper for actions/download-artifact'
inputs:
name:
description: 'Name of the artifact to download'
required: true

path:
description: 'Destination path'
required: false
default: '.'

pattern:
description: 'Glob pattern to match artifact names (optional)'
required: false
default: ''

merge-multiple:
description: 'Merge multiple artifacts into the same directory'
required: false
default: 'false'

github-token:
description: 'GitHub token for cross-repo download (optional)'
required: false
default: ''

repository:
description: 'owner/repo for cross-repo download (optional)'
required: false
default: ''

run-id:
description: 'Workflow run ID for cross-run download (optional)'
required: false
default: ''

runs:
using: 'composite'
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: ${{ inputs.name }}
path: ${{ inputs.path }}
pattern: ${{ inputs.pattern }}
merge-multiple: ${{ inputs.merge-multiple }}
github-token: ${{ inputs.github-token }}
repository: ${{ inputs.repository }}
run-id: ${{ inputs.run-id }}
19 changes: 19 additions & 0 deletions .github/actions/github-script/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: 'GitHub Script'
description: 'Wrapper for actions/github-script'
inputs:
script:
description: 'JavaScript to run'
required: true

github-token:
description: 'GitHub token (defaults to github.token)'
required: false
default: ${{ github.token }}

runs:
using: 'composite'
steps:
- uses: actions/github-script@v8
with:
script: ${{ inputs.script }}
github-token: ${{ inputs.github-token }}
40 changes: 40 additions & 0 deletions .github/actions/setup-easyscience-bot/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: 'Setup EasyScience bot for pushing'
description: 'Create GitHub App token and configure git identity + origin remote'
inputs:
app-id:
description: 'GitHub App ID'
required: true
private-key:
description: 'GitHub App private key (PEM)'
required: true
repositories:
description: 'Additional repositories to grant access to (newline-separated)'
required: false
default: ''

outputs:
token:
description: 'Installation access token'
value: ${{ steps.app-token.outputs.token }}

runs:
using: 'composite'
steps:
- name: Create GitHub App installation token
id: app-token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ inputs.app-id }}
private-key: ${{ inputs.private-key }}
repositories: ${{ inputs.repositories }}

- name: Configure git for pushing
shell: bash
run: |
git config user.name "easyscience[bot]"
git config user.email "${{ inputs.app-id }}+easyscience[bot]@users.noreply.github.com"

- name: Configure origin remote to use the bot token
shell: bash
run: |
git remote set-url origin https://x-access-token:${{ steps.app-token.outputs.token }}@github.com/${{ github.repository }}.git
20 changes: 15 additions & 5 deletions .github/actions/setup-pixi/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,21 @@ inputs:
environments:
description: 'Pixi environments to setup'
required: false
default: 'dev'
default: 'default'
activate-environment:
description: 'Environment to activate'
required: false
default: 'dev'
default: 'default'
run-install:
description: 'Whether to run install'
description: 'Whether to run pixi install'
required: false
default: 'true'
locked:
description: 'Whether to run pixi install --locked'
required: false
default: 'false'
frozen:
description: 'Whether to run pixi install --frozen'
required: false
default: 'true'
cache:
Expand All @@ -25,10 +33,12 @@ inputs:
runs:
using: 'composite'
steps:
- uses: prefix-dev/setup-pixi@v0.9.0
- uses: prefix-dev/setup-pixi@v0.9.4
with:
environments: ${{ inputs.environments }}
activate-environment: ${{ inputs.activate-environment }}
run-install: ${{ inputs.run-install }}
locked: ${{ inputs.locked }}
frozen: ${{ inputs.frozen }}
cache: ${{ inputs.cache }}
post-cleanup: ${{ inputs.post-cleanup }}
post-cleanup: ${{ inputs.post-cleanup }}
49 changes: 49 additions & 0 deletions .github/actions/upload-artifact/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: 'Upload artifact'
description: 'Generic wrapper for actions/upload-artifact'
inputs:
name:
description: 'Artifact name'
required: true

path:
description: 'File(s)/dir(s)/glob(s) to upload (newline-separated)'
required: true

include-hidden-files:
description: 'Include hidden files'
required: false
default: 'true'

if-no-files-found:
description: 'warn | error | ignore'
required: false
default: 'error'

compression-level:
description: '0-9 (0 = no compression)'
required: false
default: '0'

retention-days:
description: 'Retention in days (optional)'
required: false
default: ''

overwrite:
description: 'Overwrite an existing artifact with the same name'
required: false
default: 'false'

runs:
using: 'composite'
steps:
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.name }}
path: ${{ inputs.path }}
include-hidden-files: ${{ inputs.include-hidden-files }}
if-no-files-found: ${{ inputs.if-no-files-found }}
compression-level: ${{ inputs.compression-level }}
retention-days: ${{ inputs.retention-days }}
overwrite: ${{ inputs.overwrite }}
42 changes: 42 additions & 0 deletions .github/actions/upload-codecov/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: 'Upload coverage to Codecov'
description: 'Generic wrapper for codecov/codecov-action@v5'

inputs:
name:
description: 'Codecov upload name'
required: true

flags:
description: 'Codecov flags'
required: false
default: ''

files:
description: 'Coverage report files'
required: true

fail_ci_if_error:
description: 'Fail CI if upload fails'
required: false
default: 'true'

verbose:
description: 'Enable verbose output'
required: false
default: 'true'

token:
description: 'Codecov token'
required: true

runs:
using: composite
steps:
- uses: codecov/codecov-action@v5
with:
name: ${{ inputs.name }}
flags: ${{ inputs.flags }}
files: ${{ inputs.files }}
fail_ci_if_error: ${{ inputs.fail_ci_if_error }}
verbose: ${{ inputs.verbose }}
token: ${{ inputs.token }}
6 changes: 6 additions & 0 deletions .github/configs/pages-deployment.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"source": {
"branch": "gh-pages",
"path": "/"
}
}
Loading