From fafa0a468d61d6fbb18624bcb689181849214da0 Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Thu, 27 Jul 2023 13:13:41 -0700 Subject: [PATCH 1/6] Add support for ts-pre-commit-config. --- .gitignore | 6 +++++- .ts_pre_commit_config.yaml | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 .ts_pre_commit_config.yaml diff --git a/.gitignore b/.gitignore index e48d56e..e935928 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,8 @@ pytest_session.txt # Mac related files .DS_Store -.hypothesis/ \ No newline at end of file +.hypothesis/ +.pre-commit-config.yaml +.flake8 +.isort.cfg +.mypy.ini diff --git a/.ts_pre_commit_config.yaml b/.ts_pre_commit_config.yaml new file mode 100644 index 0000000..e1e33e9 --- /dev/null +++ b/.ts_pre_commit_config.yaml @@ -0,0 +1,6 @@ +check-yaml: true +check-xml: true +black: true +flake8: true +isort: true +mypy: false From 1e61712a28cc15a1040982fccc4fa19839ec5dbb Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Thu, 27 Jul 2023 13:15:25 -0700 Subject: [PATCH 2/6] Update package setup files. --- SConstruct | 4 ---- pyproject.toml | 34 ++++++++++++++++++++++++++++++++++ setup.cfg | 22 ---------------------- setup.py | 25 +++++++++++++++++++++++++ 4 files changed, 59 insertions(+), 26 deletions(-) delete mode 100644 SConstruct create mode 100644 pyproject.toml delete mode 100644 setup.cfg create mode 100644 setup.py diff --git a/SConstruct b/SConstruct deleted file mode 100644 index 6b67ac8..0000000 --- a/SConstruct +++ /dev/null @@ -1,4 +0,0 @@ -# -*- python -*- -from lsst.sconsUtils import scripts -# Python-only package -scripts.BasicSConstruct("ts_mtaos", disableCc=True) diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..feedffd --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,34 @@ +[build-system] +requires = [ "setuptools", "setuptools_scm" ] +build-backend = "setuptools.build_meta" + +[project] +name = "ts_mtaos" +description = "Main Telescope Active Optical System." +license = { text = "GPL" } +classifiers = [ "Programming Language :: Python :: 3" ] +urls = { documentation = "https://ts-mtaos.lsst.io", repository = "https://github.com/lsst-ts/ts_mtaos" } +dynamic = [ "version" ] + +[tool.setuptools.dynamic] +version = { attr = "setuptools_scm.get_version" } + +[tool.setuptools.packages.find] +where = [ "python" ] + +[project.scripts] +run_mtaos = "lsst.ts.mtaos:run_mtaos" + +[tool.setuptools_scm] +write_to = "python/lsst/ts/mtaos/version.py" +write_to_template = """ +# Generated by setuptools_scm +__all__ = ["__version__"] +__version__ = "{version}" +""" + +[tool.pytest.ini_options] +asyncio_mode = "auto" + +[project.optional-dependencies] +dev = ["documenteer[pipelines]"] diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index d295485..0000000 --- a/setup.cfg +++ /dev/null @@ -1,22 +0,0 @@ -[flake8] -max-line-length = 110 -max-doc-length = 79 -ignore = E133, E203, E226, E228, N802, N803, N806, N812, N813, N815, N816, W503, W504 -exclude = - bin, - doc, - doc/conf.py, - **/*/__init__.py, - **/*/version.py, - tests/.tests -per-file-ignores = doc/conf.py:F821 - -[tool:pytest] -addopts = --flake8 --black -flake8-ignore = E133 E203 E226 E228 N802 N803 N806 N812 N813 N815 N816 W503 W504 -markers = - csc_integtest: marks CSC-specific integration tests (deselect with - '-m "not csc_integtest"'). - -[options] -setup_requires=setuptools_scm diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..d27aca2 --- /dev/null +++ b/setup.py @@ -0,0 +1,25 @@ +# This file is part of ts_mtaos. +# +# Developed for the Vera Rubin Observatory Telescope and Site Systems. +# This product includes software developed by the LSST Project +# (https://www.lsst.org). +# See the COPYRIGHT file at the top-level directory of this distribution +# for details of code ownership. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import setuptools_scm +from setuptools import setup + +setup(version=setuptools_scm.get_version()) From bb163882552412c02ff6aeef8b7148ee2f4dd9db Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Thu, 27 Jul 2023 13:17:18 -0700 Subject: [PATCH 3/6] Run isort. --- bin/mtaos | 4 ++- doc/conf.py | 12 +++---- python/lsst/ts/mtaos/__init__.py | 4 +-- python/lsst/ts/mtaos/config.py | 3 +- python/lsst/ts/mtaos/model.py | 36 ++++++++------------ python/lsst/ts/mtaos/mtaos.py | 18 ++++------ python/lsst/ts/mtaos/utility.py | 12 +++---- python/lsst/ts/mtaos/wavefront_collection.py | 3 +- tests/test_configByFile.py | 3 +- tests/test_configByObj.py | 3 +- tests/test_model.py | 15 ++++---- tests/test_mtaosCsc.py | 22 +++++------- tests/test_mtaosCscWithSimulators.py | 7 ++-- tests/test_utility.py | 17 ++++----- tests/test_wavefront_collection.py | 2 +- tests/wep_integration/test_comcam.py | 14 +++----- tests/wep_integration/test_lsstcam_cwfs.py | 13 +++---- 17 files changed, 78 insertions(+), 110 deletions(-) diff --git a/bin/mtaos b/bin/mtaos index 7e1662f..c5b25d3 100755 --- a/bin/mtaos +++ b/bin/mtaos @@ -33,7 +33,9 @@ class MTAOSCommander(salobj.CscCommander): self.mtaos_remote = salobj.Remote( domain=self.remote.salinfo.domain, name="MTAOS" ) - self.mtaos_remote.evt_settingsApplied = functools.partial(self.settings_callback) + self.mtaos_remote.evt_settingsApplied = functools.partial( + self.settings_callback + ) self.mtaos_remote.tel_wepDuration.callback = functools.partial( self.duration_callback, name="wepDuration" diff --git a/doc/conf.py b/doc/conf.py index 6153e92..a7ac7ed 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -3,20 +3,20 @@ This configuration only affects single-package Sphinx documentation builds. """ -from documenteer.conf.pipelinespkg import * -import lsst.ts.mtaos +import lsst.ts.mtaos # noqa +from documenteer.conf.pipelinespkg import * # noqa project = "ts_mtaos" -html_theme_options["logotext"] = project +html_theme_options["logotext"] = project # noqa html_title = project html_short_title = project doxylink = {} # Avoid warning: Could not find tag file _doxygen/doxygen.tag -intersphinx_mapping["ts_xml"] = ("https://ts-xml.lsst.io", None) -intersphinx_mapping["ts_salobj"] = ("https://ts-salobj.lsst.io", None) +intersphinx_mapping["ts_xml"] = ("https://ts-xml.lsst.io", None) # noqa +intersphinx_mapping["ts_salobj"] = ("https://ts-salobj.lsst.io", None) # noqa # Support the sphinx extension of plantuml -extensions.append("sphinxcontrib.plantuml") +extensions.append("sphinxcontrib.plantuml") # noqa # Put the path to plantuml.jar plantuml = "java -jar /home/saluser/plantuml.jar" diff --git a/python/lsst/ts/mtaos/__init__.py b/python/lsst/ts/mtaos/__init__.py index 8e2e5c8..7d0859d 100644 --- a/python/lsst/ts/mtaos/__init__.py +++ b/python/lsst/ts/mtaos/__init__.py @@ -27,9 +27,9 @@ except ImportError: __version__ = "?" -from .wavefront_collection import * from .config import * from .config_schema import * from .model import * -from .utility import * from .mtaos import * +from .utility import * +from .wavefront_collection import * diff --git a/python/lsst/ts/mtaos/config.py b/python/lsst/ts/mtaos/config.py index 9282fef..cb0238b 100644 --- a/python/lsst/ts/mtaos/config.py +++ b/python/lsst/ts/mtaos/config.py @@ -21,8 +21,9 @@ __all__ = ["Config"] -from collections import namedtuple import warnings +from collections import namedtuple + import yaml from . import utility diff --git a/python/lsst/ts/mtaos/model.py b/python/lsst/ts/mtaos/model.py index e7f1ebd..4c693be 100644 --- a/python/lsst/ts/mtaos/model.py +++ b/python/lsst/ts/mtaos/model.py @@ -21,41 +21,35 @@ __all__ = ["Model"] -import os -import copy -import yaml -import shutil import asyncio +import concurrent.futures +import contextlib +import copy +import functools import logging +import os +import shutil import tempfile -import functools -import contextlib -import concurrent.futures - -import numpy as np - from typing import Optional +import numpy as np +import yaml +from lsst.afw.image import VisitInfo +from lsst.daf import butler as dafButler from lsst.ts.ofc import OFC -from lsst.ts.utils import make_done_future from lsst.ts.salobj import DefaultingValidator - -from lsst.afw.image import VisitInfo +from lsst.ts.utils import make_done_future +from lsst.ts.wep.utility import writePipetaskCmd from .config_schema import ( CWFS_PIPELINE_CONFIG, - WEP_HEADER_CONFIG, - ISR_CONFIG, GENERATE_DONUT_CATALOG_CONFIG, + ISR_CONFIG, SCIENCE_SENSOR_PIPELINE_CONFIG, + WEP_HEADER_CONFIG, ) - +from .utility import define_visit, get_formatted_corner_wavefront_sensors_ids, timeit from .wavefront_collection import WavefrontCollection -from .utility import define_visit, timeit, get_formatted_corner_wavefront_sensors_ids - -from lsst.ts.wep.utility import writePipetaskCmd - -from lsst.daf import butler as dafButler class Model: diff --git a/python/lsst/ts/mtaos/mtaos.py b/python/lsst/ts/mtaos/mtaos.py index bf7094d..e43115c 100644 --- a/python/lsst/ts/mtaos/mtaos.py +++ b/python/lsst/ts/mtaos/mtaos.py @@ -21,28 +21,22 @@ __all__ = ["MTAOS"] -import eups -import yaml -import typing -import inspect import asyncio +import inspect import logging +import typing import warnings -from astropy import units as u - +import eups import numpy as np - +import yaml +from astropy import units as u from lsst.ts import salobj from lsst.ts.idl.enums.MTAOS import FilterType from lsst.ts.ofc import OFCData from lsst.ts.utils import astropy_time_from_tai_unix -from . import CONFIG_SCHEMA, TELESCOPE_DOF_SCHEMA -from . import Config -from . import Model -from . import utility -from . import __version__ +from . import CONFIG_SCHEMA, TELESCOPE_DOF_SCHEMA, Config, Model, __version__, utility try: from lsst.ts.ofc import __version__ as __ofc_version__ diff --git a/python/lsst/ts/mtaos/utility.py b/python/lsst/ts/mtaos/utility.py index 8d86454..6c28784 100644 --- a/python/lsst/ts/mtaos/utility.py +++ b/python/lsst/ts/mtaos/utility.py @@ -36,25 +36,23 @@ "define_visit", ] +import asyncio +import logging import os import re import time import typing -import asyncio -import logging - -from logging.handlers import RotatingFileHandler from enum import Enum, auto +from logging.handlers import RotatingFileHandler from pathlib import Path -from lsst.utils import getPackageDir from lsst.daf.butler import Butler from lsst.obs.base import DefineVisitsTask, Instrument from lsst.obs.lsst.translators.lsstCam import LsstCamTranslator - -from lsst.ts.salobj import parse_idl from lsst.ts.idl import get_idl_dir +from lsst.ts.salobj import parse_idl from lsst.ts.wep.utility import CamType +from lsst.utils import getPackageDir class WEPWarning(Enum): diff --git a/python/lsst/ts/mtaos/wavefront_collection.py b/python/lsst/ts/mtaos/wavefront_collection.py index d29cf5f..3fe168a 100644 --- a/python/lsst/ts/mtaos/wavefront_collection.py +++ b/python/lsst/ts/mtaos/wavefront_collection.py @@ -21,9 +21,10 @@ __all__ = ["WavefrontCollection"] -import numpy as np from collections import deque +import numpy as np + class WavefrontCollection(object): def __init__(self, maxLeng): diff --git a/tests/test_configByFile.py b/tests/test_configByFile.py index 5e4bce3..c93a919 100644 --- a/tests/test_configByFile.py +++ b/tests/test_configByFile.py @@ -22,9 +22,8 @@ import os import unittest -from lsst.ts.wep.utility import CamType - from lsst.ts import mtaos +from lsst.ts.wep.utility import CamType class TestConfigByFile(unittest.TestCase): diff --git a/tests/test_configByObj.py b/tests/test_configByObj.py index ebd201f..ea872b5 100644 --- a/tests/test_configByObj.py +++ b/tests/test_configByObj.py @@ -22,9 +22,8 @@ import os import unittest -from lsst.ts.wep.utility import CamType - from lsst.ts import mtaos +from lsst.ts.wep.utility import CamType class Config(object): diff --git a/tests/test_model.py b/tests/test_model.py index 5ae67af..10ae578 100644 --- a/tests/test_model.py +++ b/tests/test_model.py @@ -19,23 +19,20 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +import asyncio import os import shutil -import asyncio import unittest -import numpy as np -import yaml - from pathlib import Path from unittest.mock import Mock -from lsst.ts.ofc import OFC, OFCData -from lsst.ts.ofc.utils import CorrectionType - -from lsst.ts import mtaos - +import numpy as np +import yaml from lsst.afw.image import VisitInfo from lsst.geom import SpherePoint, degrees +from lsst.ts import mtaos +from lsst.ts.ofc import OFC, OFCData +from lsst.ts.ofc.utils import CorrectionType # A short wait time in seconds SHORT_WAIT_TIME = 1.0 diff --git a/tests/test_mtaosCsc.py b/tests/test_mtaosCsc.py index af227d7..5d5461b 100644 --- a/tests/test_mtaosCsc.py +++ b/tests/test_mtaosCsc.py @@ -19,26 +19,20 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import os -import yaml -import glob -import pytest import asyncio +import glob +import os import unittest - -import numpy as np - from pathlib import Path -from lsst.ts import salobj -from lsst.ts import mtaos - +import numpy as np +import pytest +import yaml +from lsst.daf import butler as dafButler +from lsst.ts import mtaos, salobj from lsst.ts.ofc import OFCData - -from lsst.ts.wep.utility import writeCleanUpRepoCmd, runProgram from lsst.ts.wep.utility import getModulePath as getModulePathWep - -from lsst.daf import butler as dafButler +from lsst.ts.wep.utility import runProgram, writeCleanUpRepoCmd # standard command timeout (sec) STD_TIMEOUT = 60 diff --git a/tests/test_mtaosCscWithSimulators.py b/tests/test_mtaosCscWithSimulators.py index 3d0c220..e514885 100644 --- a/tests/test_mtaosCscWithSimulators.py +++ b/tests/test_mtaosCscWithSimulators.py @@ -19,14 +19,13 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import yaml import asyncio import unittest +from pathlib import Path import numpy as np -from pathlib import Path -from lsst.ts import salobj -from lsst.ts import mtaos +import yaml +from lsst.ts import mtaos, salobj # standard command timeout (sec) SHORT_TIMEOUT = 5 diff --git a/tests/test_utility.py b/tests/test_utility.py index f5e5dcb..6261fde 100644 --- a/tests/test_utility.py +++ b/tests/test_utility.py @@ -20,25 +20,22 @@ # along with this program. If not, see . import asyncio -import os import logging +import os import tempfile import time import unittest -import pytest - -import numpy as np -from pathlib import Path from logging.handlers import RotatingFileHandler +from pathlib import Path +import numpy as np +import pytest from lsst.daf.butler.registry.interfaces import DatabaseConflictError - -from lsst.ts.wep.utility import CamType -from lsst.ts.wep.utility import getModulePath as getModulePathWep -from lsst.ts.wep.task.cutOutDonutsCwfsTask import CutOutDonutsCwfsTask from lsst.obs.lsst.translators.lsstCam import LsstCamTranslator - from lsst.ts import mtaos +from lsst.ts.wep.task.cutOutDonutsCwfsTask import CutOutDonutsCwfsTask +from lsst.ts.wep.utility import CamType +from lsst.ts.wep.utility import getModulePath as getModulePathWep class TestUtility(unittest.TestCase): diff --git a/tests/test_wavefront_collection.py b/tests/test_wavefront_collection.py index 801929b..467298c 100644 --- a/tests/test_wavefront_collection.py +++ b/tests/test_wavefront_collection.py @@ -19,9 +19,9 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import numpy as np import unittest +import numpy as np from lsst.ts.mtaos import WavefrontCollection diff --git a/tests/wep_integration/test_comcam.py b/tests/wep_integration/test_comcam.py index 1fc9e4a..39a712e 100644 --- a/tests/wep_integration/test_comcam.py +++ b/tests/wep_integration/test_comcam.py @@ -19,22 +19,18 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import os -import yaml -import pytest import asyncio +import os import unittest import numpy as np - +import pytest +import yaml +from lsst.daf import butler as dafButler from lsst.ts import mtaos - from lsst.ts.ofc import OFCData - -from lsst.daf import butler as dafButler - -from lsst.ts.wep.utility import writeCleanUpRepoCmd, runProgram from lsst.ts.wep.utility import getModulePath as getModulePathWep +from lsst.ts.wep.utility import runProgram, writeCleanUpRepoCmd @pytest.mark.integtest diff --git a/tests/wep_integration/test_lsstcam_cwfs.py b/tests/wep_integration/test_lsstcam_cwfs.py index e0db907..0225671 100644 --- a/tests/wep_integration/test_lsstcam_cwfs.py +++ b/tests/wep_integration/test_lsstcam_cwfs.py @@ -19,20 +19,17 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import os -import yaml -import pytest import logging +import os import unittest +import pytest +import yaml +from lsst.daf import butler as dafButler from lsst.ts import mtaos - from lsst.ts.ofc import OFCData - -from lsst.daf import butler as dafButler - -from lsst.ts.wep.utility import writeCleanUpRepoCmd, runProgram from lsst.ts.wep.utility import getModulePath as getModulePathWep +from lsst.ts.wep.utility import runProgram, writeCleanUpRepoCmd @pytest.mark.integtest From c6fbde7d12e2835753bb0ddd34b55e102e40934d Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Thu, 27 Jul 2023 13:17:46 -0700 Subject: [PATCH 4/6] Add git workflows to check version history is updated and linting. --- .github/workflows/changelog.yaml | 19 +++++++++++++++++++ .github/workflows/lint.yaml | 25 +++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 .github/workflows/changelog.yaml create mode 100644 .github/workflows/lint.yaml diff --git a/.github/workflows/changelog.yaml b/.github/workflows/changelog.yaml new file mode 100644 index 0000000..96d8245 --- /dev/null +++ b/.github/workflows/changelog.yaml @@ -0,0 +1,19 @@ +name: ChangelogUpdated +on: + pull_request: + types: [assigned, opened, synchronize, reopened, labeled, unlabeled] + branches: + - develop +jobs: + build: + name: Check Actions + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Changelog check + uses: Zomzog/changelog-checker@v1.2.0 + with: + fileName: doc/versionHistory.rst + checkNotification: Simple + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml new file mode 100644 index 0000000..537bd5a --- /dev/null +++ b/.github/workflows/lint.yaml @@ -0,0 +1,25 @@ +name: lint + +on: + - push + - pull_request + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.10' + + - name: Install + run: | + $CONDA/bin/conda install -c lsstts ts-pre-commit-config -y + $CONDA/bin/conda install -c conda-forge pre-commit -y + $CONDA/bin/generate_pre_commit_conf + + - name: Run pre commit checks + run: $CONDA/bin/pre-commit run --all From f494d6c6a5dfd2938ab184468b8b6ff054e91532 Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Mon, 7 Aug 2023 17:00:23 -0700 Subject: [PATCH 5/6] Update Jenkinsfile to remove phosim_utils and to checkout lfs data from ts_wep. --- Jenkinsfile | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 5895e2d..fe12555 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -55,9 +55,6 @@ pipeline { dir(env.WORKSPACE + '/ts_mtaos') { checkout scm } - dir(env.WORKSPACE + '/phosim_utils') { - git branch: 'main', url: 'https://github.com/lsst-dm/phosim_utils.git' - } dir(env.WORKSPACE + '/ts_wep') { git branch: "${BRANCH}", url: 'https://github.com/lsst-ts/ts_wep.git' } @@ -78,11 +75,7 @@ pipeline { cd ${env.SAL_USERS_HOME} && { curl -O ${env.PLANTUML_URL} ; cd -; } pip install sphinxcontrib-plantuml - cd phosim_utils/ - setup -k -r . -t ${env.STACK_VERSION} - scons - - cd ../ts_wep/ + cd ${env.WHOME}/ts_wep/ setup -k -r . scons python @@ -112,16 +105,19 @@ pipeline { set +x source ${env.SAL_SETUP_FILE} - cd phosim_utils/ - setup -k -r . -t ${env.STACK_VERSION} - - cd ../ts_wep/ + cd ${env.WHOME}/ts_wep/ setup -k -r . - cd ../ts_ofc/ + echo Checkout wep lfs data + git lfs install || echo git lfs install FAILED + git lfs fetch --all || echo git lfs fetch FAILED + git lfs checkout || echo git lfs checkout FAILED + + + cd ${env.WHOME}/ts_ofc/ setup -k -r . - cd ../ts_mtaos/ + cd ${env.WHOME}/ts_mtaos/ setup -k -r . # Exclude integration tests from the initial run. @@ -142,16 +138,13 @@ pipeline { set +x source ${env.SAL_SETUP_FILE} - cd phosim_utils/ - setup -k -r . -t ${env.STACK_VERSION} - - cd ../ts_wep/ + cd ${env.WHOME}/ts_wep/ setup -k -r . - cd ../ts_ofc/ + cd ${env.WHOME}/ts_ofc/ setup -k -r . - cd ../ts_mtaos/ + cd ${env.WHOME}/ts_mtaos/ setup -k -r . package-docs build From 027c526273c2a4890b1fc698e52ef50f910023eb Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Thu, 27 Jul 2023 13:18:01 -0700 Subject: [PATCH 6/6] Update version history. --- doc/versionHistory.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/versionHistory.rst b/doc/versionHistory.rst index 7f42d41..f978014 100644 --- a/doc/versionHistory.rst +++ b/doc/versionHistory.rst @@ -2,6 +2,14 @@ Version History =============== +v0.12.1 +------- + +* Add support for ts-pre-commit-config. +* Update package setup files. +* Add git workflows to check version history is updated and linting. +* Run isort. + v0.12.0 -------