Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
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
2 changes: 1 addition & 1 deletion .flake8
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ exclude =
__pycache__,
build,
dist,
doc/source/conf.py
docs/source/conf.py
# huge loops in crystal.py
max-line-length = 99
# Ignore some style 'errors' produced while formatting by 'black'
Expand Down
7 changes: 4 additions & 3 deletions .github/ISSUE_TEMPLATE/release_checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,13 @@ assignees: ""
- [ ] All PRs/issues attached to the release are merged.
- [ ] All the badges on the README are passing.
- [ ] License information is verified as correct. If you are unsure, please comment below.
- [ ] Locally rendered documentation contains all appropriate pages, including API references (check no modules are
missing), tutorials, and other human-written text is up-to-date with any changes in the code.
- [ ] Locally rendered documentation contains all appropriate pages, tutorials, and other human-written text is up-to-date with any changes in the code.
- [ ] All API references are included. To check this, run `conda install scikit-package` and then `package build api-doc`. Review any edits made by rerendering the docs locally.
- [ ] Installation instructions in the README, documentation, and the website are updated.
- [ ] Successfully run any tutorial examples or do functional testing with the latest Python version.
- [ ] Grammar and writing quality are checked (no typos).
- [ ] Install `pip install build twine`, run `python -m build` and `twine check dist/*` to ensure that the package can be built and is correctly formatted for PyPI release.
- [ ] Dispatch matrix testing to test the release on all Python versions and systems. If you do not have permission to run this workflow, tag the maintainer and say `@maintainer, please dispatch matrix testing workflow`.

Please tag the maintainer (e.g., @username) in the comment here when you are ready for the PyPI/GitHub release. Include any additional comments necessary, such as version information and details about the pre-release here:

Expand All @@ -34,7 +35,7 @@ Please let the maintainer know that all checks are done and the package is ready
<!-- After the maintainer releases the PyPI package, please check the following when creating a PR for conda-forge release.-->

- [ ] Ensure that the full release has appeared on PyPI successfully.
- [ ] New package dependencies listed in `conda.txt` and `test.txt` are added to `meta.yaml` in the feedstock.
- [ ] New package dependencies listed in `conda.txt` and `tests.txt` are added to `meta.yaml` in the feedstock.
- [ ] Close any open issues on the feedstock. Reach out to the maintainer if you have questions.
- [ ] Tag the maintainer for conda-forge release.

Expand Down
18 changes: 18 additions & 0 deletions .github/workflows/build-and-publish-docs-on-dispatch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Build and Publish Docs on Dispatch

on:
workflow_dispatch:

jobs:
get-python-version:
uses: scikit-package/release-scripts/.github/workflows/_get-python-version-latest.yml@v0
with:
python_version: 0

docs:
uses: scikit-package/release-scripts/.github/workflows/_release-docs.yml@v0
with:
project: pyobjcryst
c_extension: true
headless: false
python_version: ${{ fromJSON(needs.get-python-version.outputs.latest_python_version) }}
66 changes: 62 additions & 4 deletions .github/workflows/build-wheel-release-upload.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,76 @@
name: Release (GitHub/PyPI) and Deploy Docs
name: Build Wheel and Release

# Trigger on tag push or manual dispatch.
# Tag and release privilege are verified inside the reusable workflow.
on:
workflow_dispatch:
push:
tags:
- "*" # Trigger on all tags initially, but tag and release privilege are verified in _build-wheel-release-upload.yml
- "*"

# ── Release modality ──────────────────────────────────────────────────────────
# Three options are provided below. Only ONE job should be active at a time.
# To switch: comment out the active job and uncomment your preferred option,
# then commit the change to main before tagging a release.
# ─────────────────────────────────────────────────────────────────────────────

jobs:
release:
# Option 1 (default): Release to GitHub, publish to PyPI, and deploy docs.
#
# The wheel is uploaded to PyPI so users can install with `pip install`.
# A GitHub release is created with the changelog as the release body, and
# the Sphinx documentation is rebuilt and deployed to GitHub Pages.
#
# Choose this for open-source packages distributed via PyPI and/or
# conda-forge where broad public availability is the goal.
build-release:
uses: scikit-package/release-scripts/.github/workflows/_build-wheel-release-upload.yml@v0
with:
project: pyobjcryst
c_extension: true
maintainer_GITHUB_username: sbillinge
maintainer_github_username: sbillinge
secrets:
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
PAT_TOKEN: ${{ secrets.PAT_TOKEN }}

# Option 2: Release to GitHub and deploy docs, without publishing to PyPI.
#
# A GitHub release is created and the Sphinx docs are deployed, but the
# wheel is not uploaded to PyPI. The source code remains publicly visible
# on GitHub and can be installed directly from there.
#
# Choose this when the package is public but you prefer to keep it off the
# default pip index — for example, if you distribute via conda-forge only,
# or if the package is not yet ready for a permanent PyPI presence.
#
# To use: comment out Option 1 above and uncomment the lines below.
# build-release-no-pypi:
# uses: scikit-package/release-scripts/.github/workflows/_build-release-github-no-pypi.yml@v0
# with:
# project: pyobjcryst
# c_extension: true
# maintainer_github_username: sbillinge
# secrets:
# PAT_TOKEN: ${{ secrets.PAT_TOKEN }}

# Option 3: Release to GitHub with wheel, license, and instructions bundled
# as a downloadable zip attached to the GitHub release asset.
#
# The wheel is built and packaged together with INSTRUCTIONS.txt and the
# LICENSE file into a zip that is attached directly to the GitHub release.
# Users with access to the (private) repo download the zip, follow the
# instructions inside, and install locally with pip. No PyPI or conda-forge
# upload occurs, and no docs are deployed.
#
# Choose this for private or restricted packages where distribution must be
# controlled: only users with repo access can download the release asset,
# making the GitHub release itself the distribution channel.
#
# To use: comment out Option 1 above and uncomment the lines below.
# build-release-private:
# uses: scikit-package/release-scripts/.github/workflows/_build-release-github-private-pure.yml@v0
# with:
# project: pyobjcryst
# maintainer_github_username: sbillinge
# secrets:
# PAT_TOKEN: ${{ secrets.PAT_TOKEN }}
2 changes: 1 addition & 1 deletion .github/workflows/check-news-item.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Check for News
on:
pull_request_target:
branches:
- main
- main # GitHub does not evaluate expressions in trigger filters; edit this value if your base branch is not main

jobs:
check-news-item:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
name: CI
name: Matrix and Codecov

on:
push:
branches:
- main
# push:
# branches:
# - main
release:
types:
- prereleased
Expand Down
12 changes: 0 additions & 12 deletions .github/workflows/publish-docs-on-release.yml

This file was deleted.

2 changes: 0 additions & 2 deletions .github/workflows/tests-on-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ name: Tests on PR

on:
pull_request:
branches:
- "**"
workflow_dispatch:

jobs:
Expand Down
2 changes: 1 addition & 1 deletion CODE-OF-CONDUCT.rst
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
sb2896@columbia.edu. All complaints will be reviewed and investigated promptly and fairly.
sbillinge@ucsb.edu. All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
Expand Down
4 changes: 2 additions & 2 deletions LICENSE-DANSE.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ LICENSE
This program is part of the DiffPy and DANSE open-source projects
and is available subject to the conditions and terms laid out below.

Copyright (c) 2009-2012, The Trustees of Columbia University in
Copyright (c) 2009-Present, The Trustees of Columbia University in
the City of New York. All rights reserved.

For more information please visit the project web-page:

http://www.diffpy.org/

or email Prof. Simon Billinge at sb2896@columbia.edu
or email Prof. Simon Billinge at sbillinge@ucsb.edu

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Copyright (c) 2008-2012, The Trustees of Columbia University in the City of New

Copyright (c) 2014-2019, Brookhaven Science Associates, Brookhaven National Laboratory

Copyright (c) 2024-2025, The Trustees of Columbia University in the City of New York.
Copyright (c) 2024-Present, The Trustees of Columbia University in the City of New York.
All rights reserved.

The "DiffPy-CMI" is distributed subject to the following license conditions:
Expand Down
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ Before contributing, please read our `Code of Conduct <https://github.com/diffpy
Contact
-------

For more information on pyobjcryst please visit the project `web-page <https://diffpy.github.io/>`_ or email Simon Billinge at sb2896@columbia.edu.
For more information on pyobjcryst please visit the project `web-page <https://diffpy.github.io/>`_ or email Simon Billinge at sbillinge@ucsb.edu.

You can also contact Vincent Favre-Nicolin (favre@esrf.fr) if you are using pyobjcryst outside diffpy, e.g. to display structures in a notebook, refine powder patterns or solve structures using the global optimisation algorithms, etc..

Expand Down
14 changes: 8 additions & 6 deletions cookiecutter.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
{
"maintainer_name": "Simon J.L. Billinge group",
"maintainer_email": "sb2896@columbia.edu",
"maintainer_github_username": "sbillinge",
"contributors": "Billinge Group members",
"author_names": "Simon Billinge",
"author_emails": "sbillinge@ucsb.edu",
"maintainer_names": "Simon Billinge",
"maintainer_emails": "sbillinge@ucsb.edu",
"maintainer_github_usernames": "sbillinge",
"contributors": "Billinge Group members and ccommunity contributors",
"license_holders": "The Trustees of Columbia University in the City of New York",
"project_name": "pyobjcryst",
"github_username_or_orgname": "diffpy",
Expand All @@ -11,8 +13,8 @@
"package_dir_name": "pyobjcryst",
"project_short_description": "Python bindings to the ObjCryst++ library.",
"project_keywords": "objcryst, atom structure crystallography, powder diffraction",
"minimum_supported_python_version": "3.11",
"maximum_supported_python_version": "3.13",
"minimum_supported_python_version": "3.12",
"maximum_supported_python_version": "3.14",
"project_needs_c_code_compiled": "Yes",
"project_has_gui_tests": "No"
}
3 changes: 2 additions & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,10 @@ def setup(app):
"sphinx.ext.todo",
"sphinx.ext.viewcode",
"sphinx.ext.intersphinx",
"sphinx_rtd_theme",
"sphinx_copybutton",
"nbsphinx",
"m2r",
"m2r2",
]

# Add any paths that contain templates here, relative to this directory.
Expand Down
2 changes: 1 addition & 1 deletion docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,12 @@ Table of contents
.. toctree::
:maxdepth: 2

getting-started
Examples <examples/examples>
Package API <api/pyobjcryst>
release
license

=======
Indices
=======

Expand Down
Loading
Loading