easydiffraction 0.7.1__tar.gz → 0.7.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/.github/workflows/build-docs.yml +66 -32
- easydiffraction-0.7.2/.github/workflows/create-release-pr.yml +35 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/.github/workflows/draft-release-notes.yml +41 -2
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/.github/workflows/publish-pypi.yml +2 -3
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/.github/workflows/scan-security.yml +2 -3
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/.github/workflows/test-code.yaml +29 -16
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/.github/workflows/test-package-pypi.yaml +8 -6
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/.github/workflows/test-tutorials-colab.yaml +1 -13
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/.github/workflows/test-tutorials.yaml +5 -11
- easydiffraction-0.7.2/.github/workflows/trigger-test-code.yaml +30 -0
- easydiffraction-0.7.1/.github/workflows/test-tutorials-nightly.yaml → easydiffraction-0.7.2/.github/workflows/trigger-test-tutorials.yaml +3 -3
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/.github/workflows/verify-pr-labels.yml +1 -1
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/PKG-INFO +1 -1
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/analysis-workflow/experiment.md +83 -49
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/pixi/prod/pixi.toml +2 -2
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/pixi/wheel/pixi.toml +2 -2
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/pixi.lock +1357 -1362
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/pixi.toml +29 -35
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/pyproject.toml +14 -9
- easydiffraction-0.7.2/pytest.ini +3 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/analysis/analysis.py +10 -12
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/analysis/calculation.py +5 -7
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/analysis/calculators/calculator_base.py +9 -7
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/analysis/calculators/calculator_crysfml.py +3 -4
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/analysis/calculators/calculator_cryspy.py +18 -15
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/analysis/calculators/calculator_factory.py +4 -33
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/analysis/calculators/calculator_pdffit.py +3 -5
- easydiffraction-0.7.1/src/easydiffraction/analysis/reliability_factors.py → easydiffraction-0.7.2/src/easydiffraction/analysis/fitting/metrics.py +4 -3
- easydiffraction-0.7.1/src/easydiffraction/analysis/minimizers/fitting_progress_tracker.py → easydiffraction-0.7.2/src/easydiffraction/analysis/fitting/progress_tracker.py +1 -1
- easydiffraction-0.7.1/src/easydiffraction/analysis/minimizers/minimizer_base.py → easydiffraction-0.7.2/src/easydiffraction/analysis/fitting/results.py +5 -148
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/analysis/minimization.py +9 -6
- easydiffraction-0.7.2/src/easydiffraction/analysis/minimizers/minimizer_base.py +147 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/analysis/minimizers/minimizer_dfols.py +1 -1
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/analysis/minimizers/minimizer_factory.py +3 -4
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/analysis/minimizers/minimizer_lmfit.py +1 -1
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/experiments/collections/background.py +32 -8
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/experiments/collections/excluded_regions.py +13 -8
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/experiments/collections/linked_phases.py +7 -1
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/experiments/components/experiment_type.py +62 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/experiments/components/instrument.py +7 -7
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/experiments/components/peak.py +62 -35
- easydiffraction-0.7.2/src/easydiffraction/experiments/datastore.py +250 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/experiments/experiment.py +190 -98
- easydiffraction-0.7.2/src/easydiffraction/experiments/experiments.py +114 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/plotting/plotters/plotter_ascii.py +3 -4
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/plotting/plotters/plotter_base.py +10 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/plotting/plotters/plotter_plotly.py +2 -3
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/plotting/plotting.py +46 -8
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/project.py +16 -12
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/sample_models/collections/atom_sites.py +9 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/sample_models/components/cell.py +6 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/sample_models/components/space_group.py +2 -0
- easydiffraction-0.7.2/src/easydiffraction/utils/__init__.py +3 -0
- easydiffraction-0.7.2/src/easydiffraction/utils/decorators.py +45 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/utils/utils.py +2 -3
- {easydiffraction-0.7.1/tests/functional_tests → easydiffraction-0.7.2/tests/functional}/fitting/test_pair-distribution-function.py +8 -6
- {easydiffraction-0.7.1/tests/functional_tests → easydiffraction-0.7.2/tests/functional}/fitting/test_powder-diffraction_constant-wavelength.py +5 -3
- {easydiffraction-0.7.1/tests/functional_tests → easydiffraction-0.7.2/tests/functional}/fitting/test_powder-diffraction_joint-fit.py +15 -4
- {easydiffraction-0.7.1/tests/functional_tests → easydiffraction-0.7.2/tests/functional}/fitting/test_powder-diffraction_multiphase.py +5 -1
- {easydiffraction-0.7.1/tests/functional_tests → easydiffraction-0.7.2/tests/functional}/fitting/test_powder-diffraction_time-of-flight.py +10 -2
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/analysis/calculators/test_calculator_base.py +7 -6
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/analysis/calculators/test_calculator_cryspy.py +3 -3
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/analysis/calculators/test_calculator_factory.py +0 -14
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/analysis/minimizers/test_fitting_progress_tracker.py +3 -3
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/analysis/minimizers/test_minimizer_base.py +2 -2
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/analysis/test_minimization.py +67 -31
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/analysis/test_reliability_factors.py +14 -12
- easydiffraction-0.7.2/tests/unit/experiments/collections/test_datastore.py +181 -0
- easydiffraction-0.7.2/tests/unit/experiments/collections/test_linked_phases.py +46 -0
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/experiments/components/test_experiment_type.py +17 -4
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/experiments/test_experiment.py +52 -21
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/experiments/test_experiments.py +4 -14
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/advanced_joint-fit_pd-neut-xray-cwl_PbSO4.py +10 -2
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/basic_single-fit_pd-neut-cwl_LBCO-HRPT.py +2 -2
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/cryst-struct_pd-neut-cwl_CoSiO4-D20.py +1 -1
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/cryst-struct_pd-neut-tof_Si-SEPD.py +1 -1
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/cryst-struct_pd-neut-tof_multidata_NCAF-WISH.py +4 -4
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/cryst-struct_pd-neut-tof_multiphase-LBCO-Si_McStas.py +2 -2
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/dmsc-summer-school-2025_analysis-powder-diffraction.py +4 -4
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/pdf_pd-neut-cwl_Ni.py +2 -2
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/pdf_pd-neut-tof_Si-NOMAD.py +2 -2
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/pdf_pd-xray_NaCl.py +2 -2
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/quick_single-fit_pd-neut-cwl_LBCO-HRPT.py +2 -2
- easydiffraction-0.7.1/.github/workflows/validate-pixi.yaml +0 -76
- easydiffraction-0.7.1/src/easydiffraction/core/constants.py +0 -30
- easydiffraction-0.7.1/src/easydiffraction/experiments/collections/datastore.py +0 -126
- easydiffraction-0.7.1/src/easydiffraction/experiments/experiments.py +0 -124
- easydiffraction-0.7.1/src/easydiffraction/utils/decorators.py +0 -26
- easydiffraction-0.7.1/tests/unit_tests/experiments/collections/test_datastore.py +0 -151
- easydiffraction-0.7.1/tests/unit_tests/experiments/collections/test_linked_phases.py +0 -151
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/.github/workflows/delete-old-runs.yml +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/.gitignore +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/.prettierignore +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/CONTRIBUTING.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/DEVELOPMENT.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/LICENSE +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/README.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/deps/pycrysfml-0.1.6-py312-none-macosx_14_0_arm64.whl +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/deps/pycrysfml-0.1.6-py312-none-win_amd64.whl +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/api-reference/analysis.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/api-reference/core.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/api-reference/crystallography.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/api-reference/experiments.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/api-reference/index.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/api-reference/plotting.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/api-reference/project.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/api-reference/sample_models.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/api-reference/summary.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/api-reference/utils.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/assets/images/user-guide/data-acquisition_2d-raw-data.jpg +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/assets/images/user-guide/data-acquisition_instrument.png +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/assets/images/user-guide/data-analysis_model.png +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/assets/images/user-guide/data-analysis_refinement.png +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/assets/images/user-guide/data-reduction_1d-pattern.png +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/index.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/installation-and-setup/index.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/introduction/index.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/mkdocs.yml +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/tutorials/index.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/analysis-workflow/analysis.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/analysis-workflow/index.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/analysis-workflow/model.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/analysis-workflow/project.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/analysis-workflow/summary.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/concept.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/data-format.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/first-steps.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/glossary.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/index.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/parameters/_diffrn_radiation.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/parameters/_diffrn_radiation_wavelength.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/parameters/_exptl_crystal.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/parameters/_extinction.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/parameters/_pd_calib.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/parameters/atom_site.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/parameters/background.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/parameters/cell.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/parameters/expt_type.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/parameters/instrument.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/parameters/linked_phases.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/parameters/pd_meas.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/parameters/peak.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/parameters/space_group.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/docs/user-guide/parameters.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/prettierrc.toml +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/pycrysfml.md +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/__init__.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/__main__.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/analysis/__init__.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/analysis/calculators/__init__.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/analysis/collections/__init__.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/analysis/collections/aliases.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/analysis/collections/constraints.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/analysis/collections/joint_fit_experiments.py +0 -0
- {easydiffraction-0.7.1/src/easydiffraction/analysis/minimizers → easydiffraction-0.7.2/src/easydiffraction/analysis/fitting}/__init__.py +0 -0
- {easydiffraction-0.7.1/src/easydiffraction/core → easydiffraction-0.7.2/src/easydiffraction/analysis/minimizers}/__init__.py +0 -0
- {easydiffraction-0.7.1/src/easydiffraction/crystallography → easydiffraction-0.7.2/src/easydiffraction/core}/__init__.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/core/objects.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/core/singletons.py +0 -0
- {easydiffraction-0.7.1/src/easydiffraction/experiments → easydiffraction-0.7.2/src/easydiffraction/crystallography}/__init__.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/crystallography/crystallography.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/crystallography/space_group_lookup_table.py +0 -0
- {easydiffraction-0.7.1/src/easydiffraction/experiments/collections → easydiffraction-0.7.2/src/easydiffraction/experiments}/__init__.py +0 -0
- {easydiffraction-0.7.1/src/easydiffraction/experiments/components → easydiffraction-0.7.2/src/easydiffraction/experiments/collections}/__init__.py +0 -0
- {easydiffraction-0.7.1/src/easydiffraction/plotting → easydiffraction-0.7.2/src/easydiffraction/experiments/components}/__init__.py +0 -0
- {easydiffraction-0.7.1/src/easydiffraction/plotting/plotters → easydiffraction-0.7.2/src/easydiffraction/plotting}/__init__.py +0 -0
- {easydiffraction-0.7.1/src/easydiffraction/sample_models → easydiffraction-0.7.2/src/easydiffraction/plotting/plotters}/__init__.py +0 -0
- {easydiffraction-0.7.1/src/easydiffraction/sample_models/collections → easydiffraction-0.7.2/src/easydiffraction/sample_models}/__init__.py +0 -0
- {easydiffraction-0.7.1/src/easydiffraction/sample_models/components → easydiffraction-0.7.2/src/easydiffraction/sample_models/collections}/__init__.py +0 -0
- {easydiffraction-0.7.1/src/easydiffraction/utils → easydiffraction-0.7.2/src/easydiffraction/sample_models/components}/__init__.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/sample_models/sample_model.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/sample_models/sample_models.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/summary.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/src/easydiffraction/utils/formatting.py +0 -0
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/analysis/collections/test_joint_fit_experiment.py +0 -0
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/analysis/minimizers/test_minimizer_dfols.py +0 -0
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/analysis/minimizers/test_minimizer_factory.py +0 -0
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/analysis/minimizers/test_minimizer_lmfit.py +0 -0
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/analysis/test_analysis.py +0 -0
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/core/test_objects.py +0 -0
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/core/test_singletons.py +0 -0
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/experiments/collections/test_background.py +0 -0
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/experiments/components/test_instrument.py +0 -0
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/experiments/components/test_peak.py +0 -0
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/sample_models/collections/test_atom_sites.py +0 -0
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/sample_models/components/test_cell.py +0 -0
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/sample_models/components/test_space_group.py +0 -0
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/sample_models/test_sample_models.py +0 -0
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/test_project.py +0 -0
- {easydiffraction-0.7.1/tests/unit_tests → easydiffraction-0.7.2/tests/unit}/test_symmetry_lookup_table.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tools/add_assets_to_docs.sh +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tools/cleanup_docs.sh +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tools/create_mkdocs_yml.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tools/test_scripts.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tools/tweak_notebooks.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tools/update_spdx.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/cryst-struct_pd-neut-cwl_HS-HRPT.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/NOM_9999_Si_640g_PAC_50_ff_ftfrgr_up-to-50.gr +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/NaCl.gr +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/co2sio4_d20.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/d1a_pbso4.dat +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/d1a_pbso4_first-half.dat +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/d1a_pbso4_second-half.dat +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/hrpt_hs.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/hrpt_lbco.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/lab_pbso4.dat +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/mcstas_lbco-si.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/mcstas_lbco-si.xys +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/mcstas_lbco-si_up-to-108k.xys +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/ni-q27r100-neutron_from-2.gr +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/powder_reduced_Si_2large_bank.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/reduced_LBCO.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/reduced_Si.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/sepd_si.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/wish_ncaf.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/wish_ncaf_2_9.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/wish_ncaf_4_7.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/wish_ncaf_4_7.xys +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/wish_ncaf_5_6.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/wish_ncaf_5_6.xys +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials/data/wish_ybcfo_5_6.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials-drafts/cryst-struct_pd-neut-tof_multiphase-BSFTO-HRPT.py +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials-drafts/data/DREAM_mantle_bc240_nist_cif.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials-drafts/data/DREAM_mantle_bc240_nist_cif_2.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials-drafts/data/DREAM_mantle_bc240_nist_nc.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials-drafts/data/DREAM_mantle_bc240_nist_nc_2.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials-drafts/data/Si_mp-149_symmetrized_mcstas.cif +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials-drafts/hrpt_n_Bi0p88Sm0p12Fe0p94Ti0p06O3_DW_V_9x8x52_1p49_HI.xye +0 -0
- {easydiffraction-0.7.1 → easydiffraction-0.7.2}/tutorials-drafts/test_single-fit_pd-neut-tof_Si-DREAM_nc.py +0 -0
|
@@ -1,13 +1,32 @@
|
|
|
1
|
+
# This workflow builds and deploys documentation for the project.
|
|
2
|
+
#
|
|
3
|
+
# Steps overview:
|
|
4
|
+
# Job 1: build-docs
|
|
5
|
+
# - Builds documentation (including running Jupyter notebooks to generate output cells).
|
|
6
|
+
# - Uploads the built site as a Pages artifact.
|
|
7
|
+
# Job 2: deploy-dev
|
|
8
|
+
# - Deploys the built site to GitHub Pages for development (pushes to develop/master).
|
|
9
|
+
# Job 3: deploy-prod
|
|
10
|
+
# - Deploys the built site to gh_pages branch for production (release tags starting with v*).
|
|
11
|
+
# - This triggers deployment to a custom domain via webhook.
|
|
12
|
+
#
|
|
13
|
+
# The action summary page will contain links to the built artifact for downloading
|
|
14
|
+
# and inspecting, as well as links to both the development and production versions of
|
|
15
|
+
# the deployed documentation site.
|
|
16
|
+
|
|
1
17
|
name: Build and deploy docs
|
|
2
18
|
|
|
3
19
|
on:
|
|
20
|
+
# Trigger the workflow on pull request
|
|
21
|
+
pull_request:
|
|
22
|
+
# Selected branches
|
|
23
|
+
branches: [master, develop]
|
|
4
24
|
# Trigger the workflow on push
|
|
5
25
|
push:
|
|
6
26
|
# Selected branches
|
|
7
|
-
branches: [master, develop
|
|
27
|
+
branches: [master, develop]
|
|
8
28
|
# Runs on creating a new tag starting with 'v', e.g. 'v1.0.3'
|
|
9
|
-
tags:
|
|
10
|
-
- 'v*'
|
|
29
|
+
tags: ['v*']
|
|
11
30
|
# Allows you to run this workflow manually from the Actions tab
|
|
12
31
|
workflow_dispatch:
|
|
13
32
|
|
|
@@ -41,7 +60,7 @@ jobs:
|
|
|
41
60
|
|
|
42
61
|
steps:
|
|
43
62
|
- name: Check-out repository
|
|
44
|
-
uses: actions/checkout@
|
|
63
|
+
uses: actions/checkout@v5
|
|
45
64
|
with:
|
|
46
65
|
fetch-depth: 0 # full history + tags. needed to get the latest release version
|
|
47
66
|
|
|
@@ -92,6 +111,12 @@ jobs:
|
|
|
92
111
|
- name: Convert tutorial scripts to notebooks
|
|
93
112
|
run: pixi run notebook-prepare
|
|
94
113
|
|
|
114
|
+
# The following step is needed to avoid the following message during the build:
|
|
115
|
+
# "Matplotlib is building the font cache; this may take a moment"
|
|
116
|
+
- name: Pre-build site step
|
|
117
|
+
run: pixi run python -c "import easydiffraction"
|
|
118
|
+
|
|
119
|
+
# Run the notebooks to generate the output cells using multiple cores
|
|
95
120
|
- name: Run notebooks
|
|
96
121
|
run: pixi run notebook-exec
|
|
97
122
|
|
|
@@ -121,26 +146,15 @@ jobs:
|
|
|
121
146
|
# Upload the static files from the site/ directory to be used in the next job
|
|
122
147
|
# This artifact is named github-pages and is a single gzip archive containing a single tar file
|
|
123
148
|
# The artifact is then used in the next job by actions/deploy-pages to deploy the static files to GitHub Pages
|
|
124
|
-
#
|
|
125
|
-
|
|
149
|
+
# It can also be downloaded using the actions/download-artifact, as the current upload-pages-artifact
|
|
150
|
+
# is a wrapper which triggers the actions/upload-artifact.
|
|
151
|
+
- name: Upload built site as artifact
|
|
126
152
|
uses: actions/upload-pages-artifact@v3
|
|
127
153
|
with:
|
|
128
154
|
path: site/
|
|
129
155
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
# and is used to push content to gh_pages for custom domain deployment.
|
|
133
|
-
- name: Upload built site as artifact for PROD deployment (tagged release)
|
|
134
|
-
if: startsWith(github.ref, 'refs/tags/v')
|
|
135
|
-
uses: actions/upload-artifact@v4
|
|
136
|
-
with:
|
|
137
|
-
name: artifact # name of the artifact (without the extension zip)
|
|
138
|
-
path: site/
|
|
139
|
-
if-no-files-found: 'error'
|
|
140
|
-
compression-level: 0
|
|
141
|
-
|
|
142
|
-
# Job 2: Deploy the static files
|
|
143
|
-
deploy-docs:
|
|
156
|
+
# Job 2: Deploy the built static files to GitHub Pages (DEV deployment)
|
|
157
|
+
deploy-dev:
|
|
144
158
|
needs: build-docs # previous job 'build-docs' need to be finished first
|
|
145
159
|
|
|
146
160
|
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
|
|
@@ -152,38 +166,59 @@ jobs:
|
|
|
152
166
|
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
|
153
167
|
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
|
154
168
|
concurrency:
|
|
155
|
-
group: 'pages'
|
|
169
|
+
group: 'pages-dev'
|
|
156
170
|
cancel-in-progress: false
|
|
157
171
|
|
|
158
172
|
# Deploy to the github-pages environment
|
|
159
173
|
environment:
|
|
160
|
-
name: github-pages #
|
|
174
|
+
name: github-pages # Environment name
|
|
161
175
|
url: ${{ steps.deployment.outputs.page_url }}
|
|
162
176
|
|
|
163
177
|
runs-on: ubuntu-latest
|
|
164
178
|
|
|
179
|
+
# Triggered on push to develop or master branch only
|
|
180
|
+
if: ${{ github.ref_name == 'develop' || github.ref_name == 'master' }}
|
|
181
|
+
|
|
165
182
|
steps:
|
|
166
183
|
# Deploy the static files created in the previous job to GitHub Pages
|
|
167
184
|
# To allow the deployment of the static files to GitHub Pages, no
|
|
168
185
|
# restrictions on the branch name need to be set for desired branches on
|
|
169
186
|
# https://github.com/easyscience/diffraction-lib/settings/environments
|
|
170
187
|
# Deployed pages are available at https://easyscience.github.io/diffraction-lib
|
|
171
|
-
- name: DEV deployment
|
|
188
|
+
- name: DEV deployment
|
|
172
189
|
uses: actions/deploy-pages@v4
|
|
173
190
|
|
|
174
|
-
- name:
|
|
191
|
+
- name: Add DEV deployment url to summary
|
|
175
192
|
run:
|
|
176
193
|
echo "🔗 DEV deployment url [${{ env.DEV_DEPLOYMENT_URL }}](${{
|
|
177
194
|
env.DEV_DEPLOYMENT_URL }})" >> $GITHUB_STEP_SUMMARY
|
|
178
195
|
|
|
196
|
+
# Job 3: Deploy the built static files to GitHub Pages (PROD deployment)
|
|
197
|
+
deploy-prod:
|
|
198
|
+
needs: deploy-dev # previous job 'deploy-dev' needs to be finished first
|
|
199
|
+
|
|
200
|
+
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
|
|
201
|
+
permissions:
|
|
202
|
+
contents: read
|
|
203
|
+
|
|
204
|
+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
|
205
|
+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
|
206
|
+
concurrency:
|
|
207
|
+
group: 'pages-prod'
|
|
208
|
+
cancel-in-progress: false
|
|
209
|
+
|
|
210
|
+
runs-on: ubuntu-latest
|
|
211
|
+
|
|
212
|
+
# Triggered on tagged releases only (tags starting with 'v', e.g., v1.0.3)
|
|
213
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
214
|
+
|
|
215
|
+
steps:
|
|
179
216
|
# Download built site as artifact from a previous job for gh_pages (tagged release)
|
|
180
|
-
# This artifact is
|
|
181
|
-
|
|
182
|
-
- name: Download built site from previous job (tagged release)
|
|
183
|
-
if: startsWith(github.ref, 'refs/tags/v')
|
|
217
|
+
# This artifact is used to push its content to gh_pages branch for custom domain deployment.
|
|
218
|
+
- name: Download built site from previous job
|
|
184
219
|
uses: actions/download-artifact@v4
|
|
185
220
|
with: # name or path are taken from the upload step of the previous job
|
|
186
|
-
name:
|
|
221
|
+
name: github-pages
|
|
187
222
|
path: site/ # directory to extract downloaded zipped artifacts
|
|
188
223
|
|
|
189
224
|
# Push the site files created in the previous job to the gh_pages branch
|
|
@@ -196,8 +231,7 @@ jobs:
|
|
|
196
231
|
# Then the gh_pages branch is used to deploy the site to the custom domain.
|
|
197
232
|
# Deploying is done with a webhook added via:
|
|
198
233
|
# https://github.com/easyscience/diffraction-lib/settings/hooks
|
|
199
|
-
- name: PROD deployment to gh_pages for custom domain
|
|
200
|
-
if: startsWith(github.ref, 'refs/tags/v')
|
|
234
|
+
- name: PROD deployment to gh_pages for custom domain
|
|
201
235
|
uses: s0/git-publish-subdir-action@develop
|
|
202
236
|
env:
|
|
203
237
|
GITHUB_TOKEN: ${{ secrets.GH_API_PERSONAL_ACCSESS_TOKEN }}
|
|
@@ -205,7 +239,7 @@ jobs:
|
|
|
205
239
|
BRANCH: gh_pages
|
|
206
240
|
FOLDER: site
|
|
207
241
|
|
|
208
|
-
- name: Show PROD deployment url
|
|
242
|
+
- name: Show PROD deployment url
|
|
209
243
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
210
244
|
run:
|
|
211
245
|
echo "🔗 PROD deployment url [${{ env.PROD_DEPLOYMENT_URL }}](${{
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# This workflow creates an automated release PR from `develop` into `master`.
|
|
2
|
+
#
|
|
3
|
+
# Usage:
|
|
4
|
+
# - Triggered manually via workflow_dispatch.
|
|
5
|
+
# - Creates a PR titled "Release: merge develop into master".
|
|
6
|
+
# - Adds the label "[maintainer] release" so it is excluded from changelogs.
|
|
7
|
+
# - The PR body makes clear that this is automation only (no review needed).
|
|
8
|
+
|
|
9
|
+
name: Create release PR
|
|
10
|
+
|
|
11
|
+
on:
|
|
12
|
+
workflow_dispatch: # manual trigger only
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
create-pr:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v5
|
|
19
|
+
|
|
20
|
+
- name: Create PR from develop to master
|
|
21
|
+
uses: peter-evans/create-pull-request@v6
|
|
22
|
+
with:
|
|
23
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
24
|
+
branch: develop
|
|
25
|
+
base: master
|
|
26
|
+
title: 'Release: merge develop into master'
|
|
27
|
+
body: |
|
|
28
|
+
This pull request is created automatically to trigger the release
|
|
29
|
+
pipeline. It merges the accumulated changes from `develop` into
|
|
30
|
+
`master`.
|
|
31
|
+
|
|
32
|
+
⚠️ Note: This PR is labeled **[maintainer] release** and is excluded
|
|
33
|
+
from release notes and version bump logic.
|
|
34
|
+
labels: '[maintainer] release'
|
|
35
|
+
draft: false
|
|
@@ -7,6 +7,8 @@ on:
|
|
|
7
7
|
# Runs on pushes targeting the default branch (updates the real draft release)
|
|
8
8
|
push:
|
|
9
9
|
branches: [master]
|
|
10
|
+
# Allows you to run this workflow manually from the Actions tab
|
|
11
|
+
workflow_dispatch:
|
|
10
12
|
|
|
11
13
|
jobs:
|
|
12
14
|
draft-release-notes:
|
|
@@ -17,9 +19,34 @@ jobs:
|
|
|
17
19
|
runs-on: ubuntu-latest
|
|
18
20
|
|
|
19
21
|
steps:
|
|
20
|
-
- name:
|
|
21
|
-
uses:
|
|
22
|
+
- name: Checkout repository
|
|
23
|
+
uses: actions/checkout@v5
|
|
24
|
+
with:
|
|
25
|
+
fetch-depth: 0 # full history with tags to get the version number by drafterino
|
|
26
|
+
|
|
27
|
+
- name: Set up pixi
|
|
28
|
+
uses: prefix-dev/setup-pixi@v0.9.0
|
|
29
|
+
with:
|
|
30
|
+
environments: >-
|
|
31
|
+
default
|
|
32
|
+
activate-environment: default
|
|
33
|
+
run-install: true
|
|
34
|
+
frozen: true
|
|
35
|
+
cache: false
|
|
36
|
+
post-cleanup: false
|
|
37
|
+
|
|
38
|
+
- name: Convert tutorial scripts to notebooks
|
|
39
|
+
run: pixi run notebook-prepare
|
|
40
|
+
|
|
41
|
+
- name: Clean up unnecessary script files
|
|
42
|
+
run: rm -rf tutorials/*.py
|
|
22
43
|
|
|
44
|
+
- name: Zip the tutorials directory
|
|
45
|
+
run: zip -9 -r tutorials.zip tutorials
|
|
46
|
+
|
|
47
|
+
- name: Drafts the next release notes
|
|
48
|
+
id: draft
|
|
49
|
+
uses: enhantica/drafterino@v2
|
|
23
50
|
with:
|
|
24
51
|
config: |
|
|
25
52
|
title: 'easydiffraction $COMPUTED_VERSION'
|
|
@@ -43,3 +70,15 @@ jobs:
|
|
|
43
70
|
|
|
44
71
|
env:
|
|
45
72
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
73
|
+
|
|
74
|
+
- name: Create GitHub draft release
|
|
75
|
+
uses: softprops/action-gh-release@v2
|
|
76
|
+
with:
|
|
77
|
+
draft: true
|
|
78
|
+
tag_name: ${{ steps.draft.outputs.tag_name }}
|
|
79
|
+
name: ${{ steps.draft.outputs.release_name }}
|
|
80
|
+
body: ${{ steps.draft.outputs.release_notes }}
|
|
81
|
+
files: |
|
|
82
|
+
tutorials.zip
|
|
83
|
+
env:
|
|
84
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -6,8 +6,7 @@ name: Publish to PyPI
|
|
|
6
6
|
on:
|
|
7
7
|
# Runs on creating a new tag starting with 'v', e.g. 'v1.0.3'
|
|
8
8
|
push:
|
|
9
|
-
tags:
|
|
10
|
-
- 'v*'
|
|
9
|
+
tags: ['v*']
|
|
11
10
|
# Allows you to run this workflow manually from the Actions tab
|
|
12
11
|
workflow_dispatch:
|
|
13
12
|
|
|
@@ -17,7 +16,7 @@ jobs:
|
|
|
17
16
|
|
|
18
17
|
steps:
|
|
19
18
|
- name: Check-out repository
|
|
20
|
-
uses: actions/checkout@
|
|
19
|
+
uses: actions/checkout@v5
|
|
21
20
|
with:
|
|
22
21
|
fetch-depth: '0' # full history with tags to get the version number by versioningit
|
|
23
22
|
|
|
@@ -7,8 +7,7 @@ name: Scan security (static analysis)
|
|
|
7
7
|
on:
|
|
8
8
|
# Trigger the workflow on pull request
|
|
9
9
|
pull_request:
|
|
10
|
-
branches:
|
|
11
|
-
- '**'
|
|
10
|
+
branches: ['**']
|
|
12
11
|
# Allows you to run this workflow manually from the Actions tab
|
|
13
12
|
workflow_dispatch:
|
|
14
13
|
|
|
@@ -20,7 +19,7 @@ jobs:
|
|
|
20
19
|
|
|
21
20
|
steps:
|
|
22
21
|
- name: Checkout repository
|
|
23
|
-
uses: actions/checkout@
|
|
22
|
+
uses: actions/checkout@v5
|
|
24
23
|
with:
|
|
25
24
|
# We must fetch at least the immediate parents so that if this is
|
|
26
25
|
# a pull request then we can checkout the head.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
# - Check code linting
|
|
7
7
|
# - Check code formatting
|
|
8
8
|
# - Check formatting of Markdown, YAML, TOML, etc. files
|
|
9
|
-
# 2.
|
|
9
|
+
# 2. test-source:
|
|
10
10
|
# - Test the code base against the latest code in the repository
|
|
11
11
|
# - Create the Python package
|
|
12
12
|
# - Upload the Python package for the next job
|
|
@@ -21,16 +21,13 @@ on:
|
|
|
21
21
|
# Trigger the workflow on push
|
|
22
22
|
push:
|
|
23
23
|
# Every branch
|
|
24
|
-
branches:
|
|
25
|
-
- '**'
|
|
24
|
+
branches: ['**']
|
|
26
25
|
# But do not run this workflow on creating a new tag starting with
|
|
27
26
|
# 'v', e.g. 'v1.0.3' (see publish-pypi.yml)
|
|
28
|
-
tags-ignore:
|
|
29
|
-
- 'v*'
|
|
27
|
+
tags-ignore: ['v*']
|
|
30
28
|
# Trigger the workflow on pull request
|
|
31
29
|
pull_request:
|
|
32
|
-
branches:
|
|
33
|
-
- '**'
|
|
30
|
+
branches: ['**']
|
|
34
31
|
# Allows you to run this workflow manually from the Actions tab
|
|
35
32
|
workflow_dispatch:
|
|
36
33
|
|
|
@@ -57,9 +54,23 @@ jobs:
|
|
|
57
54
|
|
|
58
55
|
runs-on: ${{ matrix.os }}
|
|
59
56
|
|
|
57
|
+
outputs:
|
|
58
|
+
pytest-marks: ${{ steps.set-mark.outputs.pytest_marks }}
|
|
59
|
+
|
|
60
60
|
steps:
|
|
61
|
+
# Determine if functional tests should be run fully or only the fast ones
|
|
62
|
+
# (to save time on branches other than master and develop)
|
|
63
|
+
- name: Set mark for functional tests
|
|
64
|
+
id: set-mark
|
|
65
|
+
run: |
|
|
66
|
+
if [[ "${{ env.CI_BRANCH }}" == "master" || "${{ env.CI_BRANCH }}" == "develop" ]]; then
|
|
67
|
+
echo "pytest_marks=" >> $GITHUB_OUTPUT
|
|
68
|
+
else
|
|
69
|
+
echo "pytest_marks=-m 'fast'" >> $GITHUB_OUTPUT
|
|
70
|
+
fi
|
|
71
|
+
|
|
61
72
|
- name: Checkout repository
|
|
62
|
-
uses: actions/checkout@
|
|
73
|
+
uses: actions/checkout@v5
|
|
63
74
|
|
|
64
75
|
- name: Set up pixi (incl. environments and dependencies)
|
|
65
76
|
uses: prefix-dev/setup-pixi@v0.9.0
|
|
@@ -136,7 +147,7 @@ jobs:
|
|
|
136
147
|
|
|
137
148
|
# Job 2: Test code
|
|
138
149
|
# TODO: Add coverage reporting with upload to Codecov?
|
|
139
|
-
|
|
150
|
+
test-source:
|
|
140
151
|
needs: code-quality # previous job needs to be finished first
|
|
141
152
|
|
|
142
153
|
strategy:
|
|
@@ -151,7 +162,7 @@ jobs:
|
|
|
151
162
|
|
|
152
163
|
steps:
|
|
153
164
|
- name: Checkout repository
|
|
154
|
-
uses: actions/checkout@
|
|
165
|
+
uses: actions/checkout@v5
|
|
155
166
|
with:
|
|
156
167
|
fetch-depth: '0' # full history with tags to get the version number by versioningit
|
|
157
168
|
|
|
@@ -172,12 +183,13 @@ jobs:
|
|
|
172
183
|
pixi run -e $env unit-tests
|
|
173
184
|
done
|
|
174
185
|
|
|
175
|
-
- name:
|
|
186
|
+
- name:
|
|
187
|
+
Run functional tests ${{ needs.code-quality.outputs.pytest-marks }}
|
|
176
188
|
shell: bash
|
|
177
189
|
run: |
|
|
178
190
|
for env in ${{ env.PIXI_ENVS }}; do
|
|
179
191
|
echo "🔹🔸🔹🔸🔹 Current env: $env 🔹🔸🔹🔸🔹"
|
|
180
|
-
pixi run -e $env func-tests
|
|
192
|
+
pixi run -e $env func-tests "${{ needs.code-quality.outputs.pytest-marks }}"
|
|
181
193
|
done
|
|
182
194
|
|
|
183
195
|
# Delete all local tags when not on a tagged commit to force versioningit
|
|
@@ -215,7 +227,7 @@ jobs:
|
|
|
215
227
|
|
|
216
228
|
# Job 3: Test the package
|
|
217
229
|
test-package:
|
|
218
|
-
needs:
|
|
230
|
+
needs: [code-quality, test-source] # depend on both previous jobs
|
|
219
231
|
|
|
220
232
|
strategy:
|
|
221
233
|
fail-fast: false
|
|
@@ -260,7 +272,7 @@ jobs:
|
|
|
260
272
|
pixi run -e $env easydiffraction version
|
|
261
273
|
done
|
|
262
274
|
|
|
263
|
-
- name: Run unit tests
|
|
275
|
+
- name: Run unit tests
|
|
264
276
|
shell: bash
|
|
265
277
|
run: |
|
|
266
278
|
for env in ${{ env.PIXI_ENVS }}; do
|
|
@@ -268,10 +280,11 @@ jobs:
|
|
|
268
280
|
pixi run -e $env unit-tests
|
|
269
281
|
done
|
|
270
282
|
|
|
271
|
-
- name:
|
|
283
|
+
- name:
|
|
284
|
+
Run functional tests ${{ needs.code-quality.outputs.pytest-marks }}
|
|
272
285
|
shell: bash
|
|
273
286
|
run: |
|
|
274
287
|
for env in ${{ env.PIXI_ENVS }}; do
|
|
275
288
|
echo "🔹🔸🔹🔸🔹 Current env: $env 🔹🔸🔹🔸🔹"
|
|
276
|
-
pixi run -e $env func-tests
|
|
289
|
+
pixi run -e $env func-tests "${{ needs.code-quality.outputs.pytest-marks }}"
|
|
277
290
|
done
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
name: Test unpinned package
|
|
1
|
+
name: Test unpinned PyPI package
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
# Run daily, at 00:00.
|
|
@@ -52,11 +52,13 @@ jobs:
|
|
|
52
52
|
- name: Run functional tests to verify the installation
|
|
53
53
|
run: pixi run func-tests
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
run:
|
|
55
|
+
# Github token to avoid hitting the unauthenticated API rate limit
|
|
56
|
+
- name: List and fetch the EasyDiffraction tutorials
|
|
57
|
+
env:
|
|
58
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
59
|
+
run: |
|
|
60
|
+
pixi run tutorials-list
|
|
61
|
+
pixi run tutorials-fetch
|
|
60
62
|
|
|
61
63
|
- name: Test tutorials as notebooks
|
|
62
64
|
run: pixi run notebook-tests
|
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
name: Test tutorials on Colab
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
-
# Trigger the workflow on push
|
|
5
|
-
#push:
|
|
6
|
-
# # Every branch
|
|
7
|
-
# branches:
|
|
8
|
-
# - '**'
|
|
9
|
-
# # But do not run this workflow on creating a new tag starting with 'v', e.g. 'v1.0.3' (see publish-pypi.yml)
|
|
10
|
-
# tags-ignore:
|
|
11
|
-
# - 'v*'
|
|
12
|
-
# Trigger the workflow on pull request
|
|
13
|
-
#pull_request:
|
|
14
|
-
# branches:
|
|
15
|
-
# - '**'
|
|
16
4
|
# Allows you to run this workflow manually from the Actions tab
|
|
17
5
|
workflow_dispatch:
|
|
18
6
|
|
|
@@ -37,7 +25,7 @@ jobs:
|
|
|
37
25
|
|
|
38
26
|
steps:
|
|
39
27
|
- name: Checkout repository
|
|
40
|
-
uses: actions/checkout@
|
|
28
|
+
uses: actions/checkout@v5
|
|
41
29
|
|
|
42
30
|
- name: Set up Python ${{ matrix.python-version }}
|
|
43
31
|
uses: actions/setup-python@v5
|
|
@@ -3,17 +3,11 @@ name: Test tutorials
|
|
|
3
3
|
on:
|
|
4
4
|
# Trigger the workflow on push
|
|
5
5
|
push:
|
|
6
|
-
#
|
|
7
|
-
branches:
|
|
8
|
-
- '**'
|
|
9
|
-
# But do not run this workflow on creating a new tag starting with
|
|
10
|
-
# 'v', e.g. 'v1.0.3' (see publish-pypi.yml)
|
|
11
|
-
tags-ignore:
|
|
12
|
-
- 'v*'
|
|
6
|
+
# Selected branches
|
|
7
|
+
branches: [master, develop]
|
|
13
8
|
# Trigger the workflow on pull request
|
|
14
9
|
pull_request:
|
|
15
|
-
branches:
|
|
16
|
-
- '**'
|
|
10
|
+
branches: ['**']
|
|
17
11
|
# Trigger the workflow on workflow_call (to be called from other workflows)
|
|
18
12
|
# Needed, as standard schedule triggers the master branch only, but we want
|
|
19
13
|
# to run this workflow on develop branch.
|
|
@@ -39,7 +33,7 @@ jobs:
|
|
|
39
33
|
|
|
40
34
|
steps:
|
|
41
35
|
- name: Checkout repository
|
|
42
|
-
uses: actions/checkout@
|
|
36
|
+
uses: actions/checkout@v5
|
|
43
37
|
|
|
44
38
|
- name: Set up pixi
|
|
45
39
|
uses: prefix-dev/setup-pixi@v0.9.0
|
|
@@ -82,7 +76,7 @@ jobs:
|
|
|
82
76
|
|
|
83
77
|
steps:
|
|
84
78
|
- name: Checkout repository
|
|
85
|
-
uses: actions/checkout@
|
|
79
|
+
uses: actions/checkout@v5
|
|
86
80
|
|
|
87
81
|
- name: Set up pixi
|
|
88
82
|
uses: prefix-dev/setup-pixi@v0.9.0
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
name: Trigger scheduled test code
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# Run daily, at 00:00.
|
|
5
|
+
schedule:
|
|
6
|
+
- cron: '0 0 * * *'
|
|
7
|
+
# Allows you to run this workflow manually from the Actions tab
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
trigger-test-tutorials:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
|
|
14
|
+
steps:
|
|
15
|
+
- name: Checkout develop branch
|
|
16
|
+
uses: actions/checkout@v5
|
|
17
|
+
with:
|
|
18
|
+
ref: develop
|
|
19
|
+
|
|
20
|
+
- name: Trigger test-tutorials workflow
|
|
21
|
+
uses: actions/github-script@v7
|
|
22
|
+
with:
|
|
23
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
24
|
+
script: |
|
|
25
|
+
await github.rest.actions.createWorkflowDispatch({
|
|
26
|
+
owner: context.repo.owner,
|
|
27
|
+
repo: context.repo.repo,
|
|
28
|
+
workflow_id: "test-code.yaml",
|
|
29
|
+
ref: "develop"
|
|
30
|
+
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
name:
|
|
1
|
+
name: Trigger scheduled test tutorials
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
# Run daily, at 00:00.
|
|
@@ -8,12 +8,12 @@ on:
|
|
|
8
8
|
workflow_dispatch:
|
|
9
9
|
|
|
10
10
|
jobs:
|
|
11
|
-
|
|
11
|
+
trigger-test-tutorials:
|
|
12
12
|
runs-on: ubuntu-latest
|
|
13
13
|
|
|
14
14
|
steps:
|
|
15
15
|
- name: Checkout develop branch
|
|
16
|
-
uses: actions/checkout@
|
|
16
|
+
uses: actions/checkout@v5
|
|
17
17
|
with:
|
|
18
18
|
ref: develop
|
|
19
19
|
|
|
@@ -19,6 +19,6 @@ jobs:
|
|
|
19
19
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
20
20
|
valid-labels:
|
|
21
21
|
'[scope] bug, [scope] documentation, [scope] enhancement, [scope]
|
|
22
|
-
maintenance, [scope] significant'
|
|
22
|
+
maintenance, [scope] significant, [maintainer] release'
|
|
23
23
|
pull-request-number: ${{ github.event.pull_request.number }}
|
|
24
24
|
disable-reviews: false
|