From 18b7e0b1b918f1acbc474a2357b230b4704eca3a Mon Sep 17 00:00:00 2001 From: Stuart Mumford Date: Thu, 14 Nov 2024 10:50:46 -0700 Subject: [PATCH 1/4] Add a couple of repr benchmarks (#468) --- dkist/tests/test_benchmarks.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/dkist/tests/test_benchmarks.py b/dkist/tests/test_benchmarks.py index 88f37108..f5f530e6 100644 --- a/dkist/tests/test_benchmarks.py +++ b/dkist/tests/test_benchmarks.py @@ -127,3 +127,13 @@ def test_slice_dataset(benchmark, large_visp_dataset): @benchmark def slice_dataset(dataset=large_visp_dataset, idx = np.s_[:2, 10:15, 0]): sliced = dataset[idx] + + +@pytest.mark.benchmark +def test_dataset_repr(benchmark, large_visp_dataset): + benchmark(repr, large_visp_dataset) + + +@pytest.mark.benchmark +def test_tileddataset_repr(benchmark, simple_tiled_dataset): + benchmark(repr, simple_tiled_dataset) From d5789c4d182c1f33f886b26bf3be77e17e13d805 Mon Sep 17 00:00:00 2001 From: Stuart Mumford Date: Wed, 18 Dec 2024 15:50:10 +0000 Subject: [PATCH 2/4] Remove pin on pytest-benchmark (#459) --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index d29b878d..f337271d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -53,7 +53,7 @@ tests = [ "pytest-mpl", "pytest-httpserver", "pytest-filter-subpackage", - "pytest-benchmark<5", + "pytest-benchmark", "pytest-xdist", "hypothesis", "tox", From c6432362d560095ec9b67f4f8d8d68060bc9d440 Mon Sep 17 00:00:00 2001 From: Stuart Mumford Date: Wed, 18 Dec 2024 16:13:46 +0000 Subject: [PATCH 3/4] Updates from package template (#472) * Update cruft with batchpr * conflicts * More vars * more urls * ruff * More ruff * Delete .github/workflows/label_sync.yml * Don't remove my prints * Update .cruft.json --- .cruft.json | 11 ++- .github/workflows/sub_package_update.yml | 48 ++++++++----- .pre-commit-config.yaml | 2 +- .ruff.toml | 90 +++++++++++++++++------ dkist/__init__.py | 2 +- dkist/_dev/scm_version.py | 4 +- dkist/data/sample.py | 2 +- dkist/dataset/utils.py | 2 +- dkist/io/loaders.py | 2 +- dkist/net/attrs.py | 34 +++++++-- dkist/net/client.py | 2 +- dkist/net/globus/endpoints.py | 2 +- dkist/net/globus/tests/test_transfer.py | 1 - dkist/net/globus/transfer.py | 2 +- dkist/utils/inventory.py | 2 +- dkist/wcs/models.py | 8 +-- docs/index.rst | 1 - pyproject.toml | 92 +++++++++++++----------- 18 files changed, 201 insertions(+), 106 deletions(-) diff --git a/.cruft.json b/.cruft.json index b3a3bea3..b9425c0b 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "https://github.com/sunpy/package-template", - "commit": "aec53b81aed2e7e534045e59303d82712fe82fb1", + "commit": "3737aa309d2a695ada046c7868c5683213003f3d", "checkout": null, "context": { "cookiecutter": { @@ -10,13 +10,20 @@ "author_name": "NSO / AURA", "author_email": "stuart@cadair.com", "project_url": "https://github.com/DKISTDC/dkist", + "github_repo": "DKISTDC/dkist", + "sourcecode_url": "https://github.com/DKISTDC/dkist", + "download_url": "https://pypi.org/project/dkist", + "documentation_url": "https://docs.dkist.nso.edu/projects/python-tools/en/stable/", + "changelog_url": "https://docs.dkist.nso.edu/projects/python-tools/en/stable/whatsnew/changelog.html", + "issue_tracker_url": "https://github.com/DKISTDC/dkist/issues", "license": "BSD 3-Clause", "minimum_python_version": "3.10", "use_compiled_extensions": "n", "enable_dynamic_dev_versions": "y", "include_example_code": "n", "include_cruft_update_github_workflow": "y", - "_sphinx_theme": "alabaster", + "use_extended_ruff_linting": "y", + "_sphinx_theme": "dkist", "_parent_project": "", "_install_requires": "", "_copy_without_render": [ diff --git a/.github/workflows/sub_package_update.yml b/.github/workflows/sub_package_update.yml index 74558476..0b657f24 100644 --- a/.github/workflows/sub_package_update.yml +++ b/.github/workflows/sub_package_update.yml @@ -21,14 +21,6 @@ jobs: runs-on: ubuntu-latest strategy: fail-fast: true - matrix: - include: - - add-paths: . - body: apply the changes to this repo. - branch: cruft/update - commit-message: "Automatic package template update" - title: Updates from the package template - steps: - uses: actions/checkout@v4 @@ -55,25 +47,47 @@ jobs: echo "has_changes=$CHANGES" >> "$GITHUB_OUTPUT" - name: Run update if available + id: cruft_update if: steps.check.outputs.has_changes == '1' run: | git config --global user.email "${{ github.actor }}@users.noreply.github.com" git config --global user.name "${{ github.actor }}" - cruft update --skip-apply-ask --refresh-private-variables + cruft_output=$(cruft update --skip-apply-ask --refresh-private-variables) + echo $cruft_output git restore --staged . - - name: Create pull request + if [[ "$cruft_output" == *"Failed to cleanly apply the update, there may be merge conflicts."* ]]; then + echo merge_conflicts=1 >> $GITHUB_OUTPUT + else + echo merge_conflicts=0 >> $GITHUB_OUTPUT + fi + + - name: Check if only .cruft.json is modified + id: cruft_json if: steps.check.outputs.has_changes == '1' + run: | + git status --porcelain=1 + if [[ "$(git status --porcelain=1)" == " M .cruft.json" ]]; then + echo "Only .cruft.json is modified. Exiting workflow early." + echo "has_changes=0" >> "$GITHUB_OUTPUT" + else + echo "has_changes=1" >> "$GITHUB_OUTPUT" + fi + + - name: Create pull request + if: steps.cruft_json.outputs.has_changes == '1' uses: peter-evans/create-pull-request@v7 with: token: ${{ secrets.GITHUB_TOKEN }} - add-paths: ${{ matrix.add-paths }} - commit-message: ${{ matrix.commit-message }} - branch: ${{ matrix.branch }} + add-paths: "." + commit-message: "Automatic package template update" + branch: "cruft/update" delete-branch: true - branch-suffix: timestamp - title: ${{ matrix.title }} + draft: ${{ steps.cruft_update.outputs.merge_conflicts == '1' }} + title: "Updates from the package template" body: | - This is an autogenerated PR, which will ${{ matrix.body }}. - [Cruft](https://cruft.github.io/cruft/) has detected updates from the Package Template + This is an autogenerated PR, which will applies the latest changes from the [SunPy Package Template](https://github.com/sunpy/package-template). + If this pull request has been opened as a draft there are conflicts which need fixing. + + **To run the CI on this pull request you will need to close it and reopen it.** diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4b7d0bae..a0037629 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,7 @@ repos: # This should be before any formatting hooks like isort - repo: https://github.com/astral-sh/ruff-pre-commit - rev: "v0.6.9" + rev: "v0.8.1" hooks: - id: ruff args: ["--fix"] diff --git a/.ruff.toml b/.ruff.toml index 4b57429d..b2c5324d 100644 --- a/.ruff.toml +++ b/.ruff.toml @@ -1,5 +1,5 @@ target-version = "py310" -line-length = 110 +line-length = 120 exclude = [ ".git,", "__pycache__", @@ -10,26 +10,36 @@ exclude = [ [lint] select = [ - "F", "E", + "F", "W", "UP", + "PT", + "BLE", + # "A", "C4", "ICN", "G", "INP", - "PT", "Q", "RSE", + "PIE", + "T20", "RET", "TID", "PTH", + "PD", + "PLC", + "PLE", + "FLY", "NPY", + # "PERF", "RUF", ] + extend-ignore = [ # pycodestyle (E, W) - "E501", # LineTooLong # TODO! fix + "E501", # ignore line length will use a formatter instead "E702", "E711", "E741", @@ -37,38 +47,72 @@ extend-ignore = [ "F403", "F821", "F841", + # pyupgrade (UP) + "UP038", # Use | in isinstance - not compatible with models and is slower # pytest (PT) "PT001", # Always use pytest.fixture() - "PT004", # Fixtures which don't return anything should have leading _ - "PT007", # Parametrize should be lists of tuples # TODO! fix - "PT011", # Too broad exception assert # TODO! fix "PT023", # Always use () on pytest decorators - # pyupgrade - "UP038", # Use | in isinstance - not compatible with models and is slower # Returns (RET) "RET502", # Do not implicitly return None in function able to return non-None value "RET503", # Missing explicit return at the end of function able to return non-None value - # Pathlib (PTH) - "PTH123", # open() should be replaced by Path.open() - # Ruff - "RUF012", # Mutable class attributes should be annotated with `typing.ClassVar` - "RUF013", # PEP 484 prohibits implicit `Optional` - "RUF015", # Prefer `next(iter(...))` over single element slice + # flake8-pie (PIE) + "PIE808", # Disallow passing 0 as the first argument to range + # flake8-use-pathlib (PTH) + "PTH123", # open() should be replaced by Path.open() + # Ruff (RUF) + "RUF003", # Ignore ambiguous quote marks, doesn't allow ' in comments + "RUF012", # Mutable class attributes should be annotated with `typing.ClassVar` + "RUF013", # PEP 484 prohibits implicit `Optional` + "RUF015", # Prefer `next(iter(...))` over single element slice ] [lint.per-file-ignores] -# Part of configuration, not a package. -"setup.py" = ["INP001"] -"conftest.py" = ["INP001"] +"setup.py" = [ + "INP001", # File is part of an implicit namespace package. +] +"conftest.py" = [ + "INP001", # File is part of an implicit namespace package. +] "docs/conf.py" = [ - "E402" # Module imports not at top of file + "E402", # Module imports not at top of file + "A001", + "BLE001", + "T201", ] "docs/*.py" = [ - "INP001", # Implicit-namespace-package. The examples are not a package. + "INP001", # File is part of an implicit namespace package. +] +"examples/**.py" = [ + "T201", # allow use of print in examples + "INP001", # File is part of an implicit namespace package. +] +"__init__.py" = [ + "E402", # Module level import not at top of cell + "F401", # Unused import + "F403", # from {name} import * used; unable to detect undefined names + "F405", # {name} may be undefined, or defined from star imports +] +"test_*.py" = [ + "E402", # Module level import not at top of cell + "B011", + "D", + "E402", + "PGH001", + "S101", +] +"dkist/logger.py" = [ + "PTH", + "BLE001", +] +"dkist/tests/generate_*" = [ + "T20", +] +"dkist/utils/sysinfo.py" = [ + "T20", +] +"dkist/net/globus/auth.py" = [ + "T201", ] -"__init__.py" = ["E402", "F401", "F403"] -"test_*.py" = ["B011", "D", "E402", "PGH001", "S101"] -"dkist/logger.py" = ["PTH"] [lint.flake8-import-conventions.extend-aliases] "astropy.units" = "u" diff --git a/dkist/__init__.py b/dkist/__init__.py index fb2a3a47..edd13f8c 100644 --- a/dkist/__init__.py +++ b/dkist/__init__.py @@ -17,7 +17,7 @@ __version__ = "unknown" -__all__ = ["TiledDataset", "Dataset", "load_dataset", "system_info", "conf"] +__all__ = ["Dataset", "TiledDataset", "conf", "load_dataset", "system_info"] def write_default_config(overwrite=False): diff --git a/dkist/_dev/scm_version.py b/dkist/_dev/scm_version.py index b9afb1d9..77e3cb1b 100644 --- a/dkist/_dev/scm_version.py +++ b/dkist/_dev/scm_version.py @@ -1,11 +1,11 @@ # Try to use setuptools_scm to get the current version; this is only used # in development installations from the git repository. -import os.path +from pathlib import Path try: from setuptools_scm import get_version - version = get_version(root=os.path.join("..", ".."), relative_to=__file__) + version = get_version(root=Path('../..'), relative_to=__file__) except ImportError: raise except Exception as e: diff --git a/dkist/data/sample.py b/dkist/data/sample.py index efcf4f61..06060a60 100644 --- a/dkist/data/sample.py +++ b/dkist/data/sample.py @@ -4,7 +4,7 @@ from ._sample import _SAMPLE_DATASETS, VISP_HEADER, _get_sample_datasets -__all__ = ["download_all_sample_data", *sorted(_SAMPLE_DATASETS.keys()), "VISP_HEADER"] +__all__ = ["download_all_sample_data", *sorted(_SAMPLE_DATASETS.keys()), "VISP_HEADER"] # noqa: PLE0604 # See PEP 562 (https://peps.python.org/pep-0562/) for module-level __dir__() diff --git a/dkist/dataset/utils.py b/dkist/dataset/utils.py index 6ab71090..bab3e338 100644 --- a/dkist/dataset/utils.py +++ b/dkist/dataset/utils.py @@ -164,7 +164,7 @@ def pp_matrix(wcs): ---------- wcs : `BaseHighLevelWCS` or `BaseLowLevelWCS` """ - print(_get_pp_matrix(wcs)) + print(_get_pp_matrix(wcs)) # noqa: T201 def extract_pc_matrix(headers, naxes=None): diff --git a/dkist/io/loaders.py b/dkist/io/loaders.py index 18e3d710..7d321328 100644 --- a/dkist/io/loaders.py +++ b/dkist/io/loaders.py @@ -14,7 +14,7 @@ from dkist import log -__all__ = ["BaseFITSLoader", "AstropyFITSLoader"] +__all__ = ["AstropyFITSLoader", "BaseFITSLoader"] common_parameters = """ diff --git a/dkist/net/attrs.py b/dkist/net/attrs.py index 6f4f3d45..e1ca47d7 100644 --- a/dkist/net/attrs.py +++ b/dkist/net/attrs.py @@ -12,13 +12,33 @@ from sunpy.net.attr import Range as _Range from sunpy.net.attr import SimpleAttr as _SimpleAttr -__all__ = ["PageSize", "Page", "Dataset", "WavelengthBand", "Embargoed", "Observable", - "Experiment", "Proposal", "TargetType", "Recipe", - "FriedParameter", "PolarimetricAccuracy", "ExposureTime", - "EmbargoEndTime", "BrowseMovie", "BoundingBox", - "SpectralSampling", "SpatialSampling", "TemporalSampling", "SummitSoftwareVersion", - "WorkflowName", "WorkflowVersion", "ObservingProgramExecutionID", - "InstrumentProgramExecutionID", "HeaderVersion"] +__all__ = [ + "BoundingBox", + "BrowseMovie", + "Dataset", + "EmbargoEndTime", + "Embargoed", + "Experiment", + "ExposureTime", + "FriedParameter", + "HeaderVersion", + "InstrumentProgramExecutionID", + "Observable", + "ObservingProgramExecutionID", + "Page", + "PageSize", + "PolarimetricAccuracy", + "Proposal", + "Recipe", + "SpatialSampling", + "SpectralSampling", + "SummitSoftwareVersion", + "TargetType", + "TemporalSampling", + "WavelengthBand", + "WorkflowName", + "WorkflowVersion", +] # SimpleAttrs diff --git a/dkist/net/client.py b/dkist/net/client.py index b49bc411..2ae1b1d0 100644 --- a/dkist/net/client.py +++ b/dkist/net/client.py @@ -28,7 +28,7 @@ from . import attrs as dattrs from .attr_walker import walker -__all__ = ["DKISTQueryResponseTable", "DKISTClient"] +__all__ = ["DKISTClient", "DKISTQueryResponseTable"] class DKISTQueryResponseTable(QueryResponseTable): diff --git a/dkist/net/globus/endpoints.py b/dkist/net/globus/endpoints.py index 17357936..033d7d50 100644 --- a/dkist/net/globus/endpoints.py +++ b/dkist/net/globus/endpoints.py @@ -11,7 +11,7 @@ from .auth import ensure_globus_authorized, get_refresh_token_authorizer -__all__ = ["get_data_center_endpoint_id", "get_endpoint_id", "get_directory_listing"] +__all__ = ["get_data_center_endpoint_id", "get_directory_listing", "get_endpoint_id"] def get_transfer_client(force_reauth=False): diff --git a/dkist/net/globus/tests/test_transfer.py b/dkist/net/globus/tests/test_transfer.py index 21491470..563da267 100644 --- a/dkist/net/globus/tests/test_transfer.py +++ b/dkist/net/globus/tests/test_transfer.py @@ -130,7 +130,6 @@ def test_process_event_list(transfer_client, mock_task_event_list): assert all(isinstance(e, tuple) for e in events) assert all(all(isinstance(item, tuple) for item in e) for e in events) - print(events) assert len(json_events) == 1 assert isinstance(json_events, tuple) assert isinstance(json_events[0], dict) diff --git a/dkist/net/globus/transfer.py b/dkist/net/globus/transfer.py index 2669738f..4e3cf0f2 100644 --- a/dkist/net/globus/transfer.py +++ b/dkist/net/globus/transfer.py @@ -15,7 +15,7 @@ from .endpoints import (auto_activate_endpoint, get_data_center_endpoint_id, get_endpoint_id, get_local_endpoint_id, get_transfer_client) -__all__ = ["watch_transfer_progress", "start_transfer_from_file_list"] +__all__ = ["start_transfer_from_file_list", "watch_transfer_progress"] def start_transfer_from_file_list( diff --git a/dkist/utils/inventory.py b/dkist/utils/inventory.py index 440ce53e..9021f86b 100644 --- a/dkist/utils/inventory.py +++ b/dkist/utils/inventory.py @@ -7,7 +7,7 @@ from astropy.table import Table -__all__ = ["dehumanize_inventory", "humanize_inventory", "INVENTORY_KEY_MAP"] +__all__ = ["INVENTORY_KEY_MAP", "dehumanize_inventory", "humanize_inventory"] class DefaultMap(defaultdict): diff --git a/dkist/wcs/models.py b/dkist/wcs/models.py index 7c44df00..15705e67 100755 --- a/dkist/wcs/models.py +++ b/dkist/wcs/models.py @@ -15,19 +15,19 @@ from astropy.modeling import CompoundModel, Model, Parameter, separable __all__ = [ + "AsymmetricMapping", + "BaseVaryingCelestialTransform", "CoupledCompoundModel", "InverseVaryingCelestialTransform", "InverseVaryingCelestialTransform2D", "InverseVaryingCelestialTransform3D", + "Ravel", + "Unravel", "VaryingCelestialTransform", "VaryingCelestialTransform2D", "VaryingCelestialTransform3D", - "BaseVaryingCelestialTransform", "generate_celestial_transform", - "AsymmetricMapping", "varying_celestial_transform_from_tables", - "Ravel", - "Unravel", ] diff --git a/docs/index.rst b/docs/index.rst index 2c67da03..b2691459 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -19,7 +19,6 @@ The `dkist` package is a `SunPy Affiliated Package =1.1.2", @@ -77,7 +78,12 @@ docs = [ ] [project.urls] -repository = "https://github.com/DKISTDC/dkist" +Homepage = "https://github.com/DKISTDC/dkist" +"Source Code" = "https://github.com/DKISTDC/dkist" +Download = "https://pypi.org/project/dkist" +Documentation = "https://docs.dkist.nso.edu/projects/python-tools/en/stable/" +Changelog = "https://docs.dkist.nso.edu/projects/python-tools/en/stable/whatsnew/changelog.html" +"Issue Tracker" = "https://github.com/DKISTDC/dkist/issues" [project.entry-points] 'asdf.extensions' = {dkist = 'dkist.io.asdf.entry_points:get_extensions'} @@ -101,8 +107,14 @@ write_to = "dkist/_version.py" [ tool.gilesbot.towncrier_changelog ] enabled = true verify_pr_number = true - changelog_skip_label = "no changelog" - help_url = "https://github.com/DKISTDC/dkist/changelog/README.rst" + changelog_skip_label = "No Changelog Entry Needed" + help_url = "https://github.com/DKISTDC/dkist/blob/main/changelog/README.rst" + + changelog_missing_long = "There isn't a changelog file in this pull request. Please add a changelog file to the `changelog/` directory following the instructions in the changelog [README](https://github.com/DKISTDC/dkist/blob/main/changelog/README.rst)." + + type_incorrect_long = "The changelog file you added is not one of the allowed types. Please use one of the types described in the changelog [README](https://github.com/DKISTDC/dkist/blob/main/changelog/README.rst)" + + number_incorrect_long = "The number in the changelog file you added does not match the number of this pull request. Please rename the file." [ tool.gilesbot.milestones ] enabled = false @@ -121,43 +133,43 @@ write_to = "dkist/_version.py" report_on_fail = true [tool.towncrier] - package = "dkist" - filename = "CHANGELOG.rst" - directory = "changelog/" - issue_format = "`#{issue} `_" - title_format = "{version} ({project_date})" - - [[tool.towncrier.type]] - directory = "breaking" - name = "Backwards Incompatible Changes" - showcontent = true - - [[tool.towncrier.type]] - directory = "api" - name = "API Changes" - showcontent = true - - [[tool.towncrier.type]] - directory = "removal" - name = "Deprecations and Removals" + package = "dkist" + filename = "CHANGELOG.rst" + directory = "changelog/" + issue_format = "`#{issue} https:github.com/DKISTDC/dkist/pull/{issue}>`__" + title_format = "{version} ({project_date})" + + [[tool.towncrier.type]] + directory = "breaking" + name = "Backwards Incompatible Changes" showcontent = true - [[tool.towncrier.type]] - directory = "feature" - name = "Features" + [[tool.towncrier.type]] + directory = "api" + name = "API Changes" showcontent = true - [[tool.towncrier.type]] - directory = "bugfix" - name = "Bug Fixes" - showcontent = true - - [[tool.towncrier.type]] - directory = "doc" - name = "Improved Documentation" - showcontent = true - - [[tool.towncrier.type]] - directory = "trivial" - name = "Trivial/Internal Changes" - showcontent = true + [[tool.towncrier.type]] + directory = "removal" + name = "Deprecations and Removals" + showcontent = true + + [[tool.towncrier.type]] + directory = "feature" + name = "Features" + showcontent = true + + [[tool.towncrier.type]] + directory = "bugfix" + name = "Bug Fixes" + showcontent = true + + [[tool.towncrier.type]] + directory = "doc" + name = "Improved Documentation" + showcontent = true + + [[tool.towncrier.type]] + directory = "trivial" + name = "Trivial/Internal Changes" + showcontent = true From 5ad3fdac08145d496601895be4bb08b6397647f7 Mon Sep 17 00:00:00 2001 From: Stuart Mumford Date: Wed, 18 Dec 2024 17:02:30 +0000 Subject: [PATCH 4/4] Updates from package template (#480) * Update cruft with batchpr * Update pyproject.toml * Update sub_package_update.yml * Update .cruft.json --- .cruft.json | 2 +- .github/workflows/sub_package_update.yml | 2 ++ .pre-commit-config.yaml | 2 +- pyproject.toml | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.cruft.json b/.cruft.json index b9425c0b..13db5573 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "https://github.com/sunpy/package-template", - "commit": "3737aa309d2a695ada046c7868c5683213003f3d", + "commit": "c60ccf2ddc71d3cf126cea15132a15da307864f7", "checkout": null, "context": { "cookiecutter": { diff --git a/.github/workflows/sub_package_update.yml b/.github/workflows/sub_package_update.yml index 0b657f24..3a70299c 100644 --- a/.github/workflows/sub_package_update.yml +++ b/.github/workflows/sub_package_update.yml @@ -86,6 +86,8 @@ jobs: delete-branch: true draft: ${{ steps.cruft_update.outputs.merge_conflicts == '1' }} title: "Updates from the package template" + labels: | + no changelog body: | This is an autogenerated PR, which will applies the latest changes from the [SunPy Package Template](https://github.com/sunpy/package-template). If this pull request has been opened as a draft there are conflicts which need fixing. diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a0037629..23fd5d85 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,7 @@ repos: # This should be before any formatting hooks like isort - repo: https://github.com/astral-sh/ruff-pre-commit - rev: "v0.8.1" + rev: "v0.8.3" hooks: - id: ruff args: ["--fix"] diff --git a/pyproject.toml b/pyproject.toml index d1a3da4e..c6a0812f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -136,7 +136,7 @@ write_to = "dkist/_version.py" package = "dkist" filename = "CHANGELOG.rst" directory = "changelog/" - issue_format = "`#{issue} https:github.com/DKISTDC/dkist/pull/{issue}>`__" + issue_format = "`#{issue} `__" title_format = "{version} ({project_date})" [[tool.towncrier.type]]