- Remove the
--flake8
pytest option. - Move pytest configuration to
pyproject.toml
.
- Switch package Sphinx configuration from
documenteer.sphinxconfig.stackconf
todocumenteer.conf.pipelinespkg
(available in Documenteer 0.6). - Make the flake8 exclusion of doc/setup.cfg more precise (there were reports that flake8 was not respecting the doc/ exclusion otherwise. This change also has the benefit of ensuring that sample modules included in the documentation are checked with flake8.
- Update the Flake8 exceptions list in
setup.cfg
to replaceW504
withW503
. See RFC-650 for background.
- Add a "Pipeline tasks" section to the module homepage template.
Added support for the lsst-sitcom GitHub organization.
Updated the AURA copyright to "Association of Universities for Research in Astronomy, Inc. (AURA)."
Added a new uses_dds
Cookiecutter variable.
When enabled, this variable adds a block to the tests/SConscript
file that adds the contents of the OSPL_URI
, OPENSPLICE_LOC
, and ADLINK_LICENSE
environment variables to the PATH of the SCons environment.
These are necessary for T&S packages that work with OpenSplice DDS (the base technology used by SAL).
Slack-based users can trigger this variable by selecting a "DDS Package" item from the flavor menu.
Packages that don't use C++ are now one file simpler:
- No
ups/*.cfg
file for non-C++ packages. - The
SConstruct
file for non-C++ packages includes thenoCfgFile=True
argument.
- Added support for the https://github.com/lsst/lsst-verification-and-validation GitHub organization.
- Added a "Script reference" section to link to script topic pages (see script_topic and argparse_script_topic).
-
Added a new template variable,
cookiecutter.stack_name
. This identifies what "stack" the package is part of, if at all. The current default is "LSST Science Pipelines," whose packages have documentation published at https://pipelines.lsst.io. Ifcookiecutter.stack_name
is set to "None" then the package is considered to stand alone. In that case, thedoc/
directory is rearranged to support a standalone documentation site for the package. -
Added an
example_standalone/
package that demonstratescookiecutter.stack_name=="None"
andcookiecutter.base_package=="sconsUtils"
. This example should be close to a typical Telescope & Site package starting point. -
Fixed an issue with the
cookiecutter.base_package
variable (thesconsUtils
option was misspelled assetupUtils
).
-
Eliminated intermediate
__init__.py
files. In Python 3,__init__.py
files are no longer needed to establish a package. This also means that thepkgutil.extend_path
method call is no longer needed. Nor is the lsstimport package from the "base" EUPS package.The template still keeps the
__init__.py
of the module itself; this file is still commonly used for establishing public namespaces so it's good to keep it in the template. -
Added a new cookiecutter variable,
cookiecutter.base_package
. This selects the default package. Science Pipelines packages should usebase
as the base package (the effective outcome of RFC-52), while other stacks that don't needbase
can usesconsUtils
. -
Removed the
utils
package as a default dependency, reversing the change from 2018-11-05. Developers should add theutils
dependency if their code uses it (for example, in tests).
- Added
bin/
and.coverage
to.gitignore
. - Added
base
as a default EUPS dependency. This prevents packages that have not other dependencies from having errors about gettinglsstimport
. Packages that add high-level dependencies can drop the explicit dependency onbase
. - Also add
utils
as a default EUPS dependency since it is necessary for unit tests, in most cases. - Marked W504 (line break after binary operator) as an ignored Flake8 rule. This rule was introduced by pycodestyle 2.4.0, but is not part of the DM Python Style Guide. See the post Changes to baseline software versions.
- New "Task reference" section in the module homepages.
The
has_tasks
configuration controls whether the "Task reference" section is included or not.
doc/SConscript
anddoc/doxygen.conf.in
are no longer included in packages that don't use C++.conf.py
does not attempt to import a package if it doesn't not use Python.- The package homepage no longer refers to the (nonexistent) Python module.
- The E251 rule exception is no longer included in
setup.cfg
since it is also not adopted by the Python style guide.
-
Deleted the
ups/*.build
file. It turns out that this file is not used by the build system. -
Added
pyList
argument to thetests/Sconscript
file. This enables auto file detection. -
Updated the
setup.cfg
configuration file. This adds the N806 flake8 exception and the[tool:pytest]
section. -
Updated the default
automodapi
usage in module documentation homepages.-
no-main-docstr
is something we always want to use since the main docstring in__init__.py
shouldn't be used, in favour of writing topics in thedoc/
directory. -
Most modules don't have interesting class inheritance, so it makes sense to default to
no-inheritance-diagram
.
-
(DM-15110)
-
Add a
uses_python
configuration incookiecutter.json
. When bothuses_python
anduses_cpp
areFalse
, the package is data-only (likeafwdata
orverify_metrics
, for example). See theexample_dataonly
example package. -
The package homepage (
doc/{{cookiecutter.package_name}}/index.rst
) now only appears for data-only packages. Similarly, the module homepage (doc/{{cookiecutter.python_module}}/index.rst
) now only appears for packages that provide a Python module. -
Redesigned the package and module homepages to both have a Contributing section (replacing the project info section formerly in the package homepage). The contributing section links to the GitHub repository and Jira component. This section can be expanded with a toctree to link to topics about how to develop the module or package itself. The template also includes a commented-out "Using" section that provides a toctree for linking to topics related to using the package or module.
-
The
statics
field indoc/manifest.yaml
is now commented out by default. Most packages don't need a static content directory.
(DM-15024)
- Add
disableCc=True
argument to theSConstruct
for Python-only packages. (DM-14860)
- Remove version pinning from
ups/{{package_name}}.table
. Version pinning isn't used anymore since all packages are tagged together. (DM-14668)