Changelog
v2.3.2 (2025-07-07)
Public:
Improved Documentation for testing: recommend install command is now
pip install -e '.[dev]'instead ofpip install -e .[dev]. Adding the quotation marks makes the command work more stable across different shells.
v2.3.1 (2025-07-07)
Public:
Changed
urnc cito only create a commit if there are changed filesFixed a bug in
urnc.ci.ciwhere the function modified the inputconfigobject in-place. This modification could cause issues when calling the function multiple times in the same Python session with the same config object.
Internal:
Added more tests for
urnc.ci.ciImproved logging output during tests. If
pytestis called with flag-s(don’t capture STDOUT), logging output is now printed in the same format as during normal execution, whereas previously pytests internal logging format was used.
v2.3.0 (2025-06-08)
Internal:
Added recommended command for running a full test incl. code coverage
Added functions
rmtreeandrelease_lockstournc.utilFixed
urnc.util.dirs_equal. Previously, if dotignore was True, not all dotfiles in the root of the compared dirs were ignored, but only a hardcoded subset. Now, all files starting with a dot are correctly ignored.Renamed function
update_repo_configtoensure_git_identityAdded support for abbreviated timezones like
CESTorCETtoci.write_gitignore. I.e., they can now be used in config option git.exclude as well.
v2.2.2 (2025-05-26)
Fixed link in configuration page
Added Documentation page about website generation
Improved keywords chapter in configuration page
v2.2.1 (2025-05-20)
Fixed a bug in
urnc cithat caused errors when a path outside the course was specified as output_dir
v2.2.0 (2025-05-19)
General:
Improve path handling when inside course
Improve error handling in urnc commands
API:
Fix:
urnc ciandurnc studentnow raise an error ifconfig.yamlis missingFix:
urnc initnow provides ci actionsFix:
root pathin convert is now detected correctlyAdd:
urn convertnow provides default values for targets without outputAdd:
urnc convertconvert now supports a--targetargument
Internal:
Disable patch coverage requirement
Fix ci actions by adding dummy git credentials
Bump version to 2.2.0
Improve out of convert
Add strict arg to read_config
Improve handling of bare repos in ci
Make initial commit in student remote in init
Do not return repo objs to prevent leaks
Pytest now uses temp dirs for every test
Add dirs_equa and read_notebookl to util
Add template option to urnc init
Fix handling relative paths in NbPath
v2.1.1 (2025-05-16)
Added descriptions to previously undocumented CLI options.
Improved existing descriptions of CLI options.
v2.1.0 (2025-05-16)
API Related:
Added documentation for ‘Existing commands’, ‘Configuration options’ and ‘Placeholders’
Improved documentation for ‘Contributing’ and ‘Changelog’
Removed documentation for ‘Modules’ (The python interface is considered internal and therefore only the command line interface will be documented in future versions)
Added the following new arguments to
urnc init:-p, --path DIRECTORY: Output directory-u, --url TEXT: Git URL for admin repository-s, --student TEXT: Git URL for student repository
Internal:
Added tests for MacOS and Windows
Added tests for python versions 3.9, 3.10, 3.11 and 3.13
Fixed coverage upload in CI
Switched docs to Markdown format
Added type hints to almost every function
Added dev dependencies to pyproject.toml, i.e., urnc can now be installed with
pip install urnc[dev]to get all development dependencies as well.Added
pyrightconfig.jsonand recommended pyright as type checker in the contribution guidelines.Added tests for
convertandmerge_dictAdded
urlandstudent_urlarguments tournc.pull.pullMade lots of refactorings to support python version below 3.12, e.g.:
Used
if/elseinstead ofmatch(Python 3.10+)Used
Enuminstead ofStrEnum(Python 3.11+)
Made even more refactorings to fix type check findings
Added temp folders to
.gitignoreSimplified
test_ci.py
v2.0.12 (2025-05-07)
Fixed a bug where multiple targets were falsely generated in sequence. For example, if both ‘student’ and ‘solution’ targets were defined, the solution target was created from the ‘student’ version after solutions had already been removed.
v2.0.11 (2025-05-02)
Fixed
student/cicommand: time zones in timestamps inconfig.yamlare now handled correctly.Fixed
urnc convert --solution INPUT: manually tagged solutions are no longer removed.
v2.0.10 (2025-04-03)
Fixed solution detection behavior.
Removed unnecessary
raiseinurnc pull.
v2.0.9 (2025-03-21)
Fixed solution detection issues.
v2.0.8 (2025-03-11)
Added log statements for better debugging.
v2.0.7 (2025-03-11)
Added an ignore function to improve flexibility in processing.
v2.0.6 (2025-02-24)
Fixed execution-related issues.
v2.0.5 (2025-02-04)
Fixed issues with the
cicommand.
v2.0.4 (2025-02-03)
Fixed a root key error in configuration handling.
v2.0.3 (2025-02-03)
Added
ipykernelas a dependency.
v2.0.2 (2025-02-03)
Fixed issues with
strenum.
v2.0.1 (2025-02-03)
Fixed default branch handling.
v2.0.0 (2024-10-17)
Major changes to
urnc pullbehavior.Disabled removal of scroll state in
urnc convert.Added support for subdirectory usage in
urnc ciandurnc student.Introduced
config.git.output_dirfor better configuration.
v1.10.6 (2024-09-25)
Fixed regression tests.
v1.10.5 (2024-09-25)
Limited tests to fast tests only.
v1.10.4 (2024-09-25)
Added a pre-release version command.
v1.10.3 (2024-04-11)
Fixed a bug in which student repos could not be pushed by
urnc ciif the repo already existed on the CI runner machine and was older than the corresponding remote repo (as could occur when using multiple runners which use different drives for caching). Now, whenever the repo already exists agit pullis executed before starting the conversion.
v1.10.2 (2024-01-04)
Skeletons are now removed when creating student version with solutions.
v1.10.0 (2024-01-04)
Added solution parameter to
urnc.convert.convertAdded config option
ci.solutiontoconfig.yaml. When specified,urnc studentnow creates student notebooks including solutions in addition to the usual student notebooks.Info messages printed by convert now use relative paths instead of absolute paths to make them more readable.
Remote images that cannot be verified now cause a warning message instead of an error message.
v1.9.3 (2024-01-01)
Added code coverage calculation to test action
Test action now also runs regression tests in addition to unit tests.
v1.9.2 (2023-12-19)
Improved unit and regression tests for better reliability.
Reverted solution pattern to maintain compatibility with older notebooks. This ensures that existing notebooks using “# Solution” will still work as expected.
v1.9.0 (2023-12-19)
Added automatic testing for pull requests and pushes to the main branch. This helps ensure code quality and stability.
Fixed a minor issue in the versioning function’s documentation.
v1.8.0 (2023-12-19)
Refactored the codebase significantly. All command-line interface (CLI) functions are now organized in a single module, making the code easier to maintain and extend.
v1.7.0 (2023-12-18)
Introduced a regression test suite to ensure new changes do not break existing functionality. Details are available in the
testingdocumentation.Added comprehensive package documentation in the
docsfolder.
v1.5.0 (2023-10-16)
Added support for specifying “after” and “until” values in the
git.excludeconfiguration. This allows users to exclude files based on specific time ranges, such as{pattern: assignments/sheet4.ipynb, after: 2023-12-04}.
v1.4.0 (2023-10-14)
Added support for environment variables in the
git.studentconfiguration. For example, you can now use a value likehttps://urncbot:{URNC_ACCESS_TOKEN_STUDENT_REPO}@github.com/spang-lab/urnc-example-course-public.git.Introduced a version flag for better version management.
Replaced print statements with a logging system for improved debugging and output control.
v1.3.0 (2023-10-12)
Introduced the
pullcommand to fetch updates from remote repositories.
v1.2.0 (2023-10-11)
Updated the
cicommand to use a separate “student” repository for better organization and workflow.
v1.1.0 (2023-10-10)
Added support for skeletons, allowing users to create templates for assignments.
Introduced the
studentcommand to generate student versions of notebooks.Added the
checkcommand to validate notebooks for errors.Deprecated the use of “Exercise” in favor of “Assignments” for better clarity.
v1.0.0 (2023-09-22)
Initial stable release of the URNC tool.