All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Python now generates a
run
command and cli entry point for clients and services.
- Python now uses
pyproject
instead ofsetuptools
by default. Template for targetSetup has been updated accordingly. It also conforms toruff
s checks and formatting by default.
- Python's config merger now handles mypy overrides targeting multiple packages.
- C/C++ format commands used
[]
instead of{}
in the fd glob expression so it matched single chars.
input
parameter tomkPlatform
for C. This controls what target gets used for dependent components.
targetName
no longer gets sent to themk*
functions for C.
- Overriding the factory of a C platform caused the 'override' function to disappear from the resulting set.
output
now works as expected on C platforms. Previously, setting output to a different value thanname
created a broken configuration.
- Python check runner not finding config when not in root of component.
- Fix some outside tools not getting check configs because TMP is not always set.
- Flake8 not getting configuration.
- Sphinx documentation can now access the nativeBuildInputs of the source package.
- Python coverage tool not getting proper configuration.
- Terraform deploy now sends sigint to terraform on ctrl+C, giving it a chance to shut down a little more gracefully.
- Naming checks for the default ruff configuration.
- Missing shebang in python check tools. This caused errors depending on which exec function you used.
- Support for overriding python linters config.
- Ruff default configuration. Now picks upp issues similar to to the alternative (isort, black, flake etc).
- Ruff support for python components. Currently have to opt in by
setting
defaultCheckPhase = "ruffStandardTests";
onbase.languages.python
. This will change the global default for the python language. To set it for a single component setinstallCheckPhase
tostandardTests
orruffStandardTests
or any combination of the two. To individually set the formatter set theformatter
on the component to either "standard" (black + isort) or to "ruff" (ruff 🐕). If formatter is not set it will be detected from the value ofinstallCheckPhase
.
gen-default-crates
command to generate the list of default crates shipped with Nedryglot.- Support for nixpkgs versions up to 23.11
- Now uses Nedryland version 10.0.0
- C does not expect
doc
andman
output if doxygen is disabled. - C platform override now lets the user override all attributes of the derivation, not
just the attributes sent in. For example,
lintPhase
was hardcoded inmkDerivation
for all C platforms.
build
shell command for python.
- Terraform deploy will now exit with non-zero exit code if deploy failed.
- Give pylint a $HOME so it won't complain when writing cache and stats.
- Nedryglot now requires version 9.0.0 of nedryland or higher.
- Python linting tools now combines their configs during runtime instead of build time.
- Rust components now only uses vendored dependencies. Dependencies
can be vendored with the
fetchCrate
function. Refer to the docs for more information.
- Config merge script including non mypy settings for mypy.
- Config merge script not considering if certain fields did not exist.
- Add support for supplying python check tools with arguments (black, isort, pylint, flake8, mypy, pytest)
- mypy overrides not working in for example pyproject.toml.
- docsConfig added for python components.
- C/C++ as a supported language. The language currently makes no assumptions on build system. See the documentation for more information.
- Fixed black nix store check.
- Make sure python check tool runners has a shell shebang.
- Disabled black on aarch64-darwin since it is broken in nixpkgs 22.05.
- Hide check command if checks are not available.
- The merged/generated configs for python's linters do not check the filesystem during nix eval.
- Tests for nixpkgs 22.11
- Python checks were accidentally left off, they are now on by default.
- Python version check to use the correct attribute and check for non-Nedryland components.
- Broke out languages from Nedryland into Nedryglot with notable changes:
- All languages can be overridden.
- Added shell setup for terraform language.
- New and updated documentation.
- New examples.
- Python language now supports several versions of python. Creates one target per version.
- Rust language now uses rust from nixpkgs by default.
- Languages no longer uses the generic
package
attribute. There shouldn't be any blessed targets or assumptions.