What's Changed
This release brings some exciting features to pytask! 🥳
Lockfiles
From now on, pytask uses a lockfile named pytask.lock to store the state of tasks, dependencies and products. It is placed at the root of your project directory and should be added to version control. It enables two features
- You can move your project to another machine and continue developing without rebuilding from scratch.
- Use
pytask lockto update the lockfile after moving or renaming tasks or integrating externally created products
For backward compatibility, pytask continues to update the state in the old .pytask/pytask.sqlite3 so you can safely downgrade to an older pytask version if necessary (🤞 hopefully not).
Logs
pytask is now able to capture logging and write your logs to files. Use it to capture lots of information about your running tasks while keeping your terminal clean.
Others
networkxis now an optional dependency enabling faster startup.- The documentation was migrated to Zensical and has been improved in many ways, for example, a new overview for the CLI.
Full List of Changes
- Remove pytest markers by @tobiasraabe in #741
- chore: update install docs and typing setup by @tobiasraabe in #742
- Move runtimes to json journal store by @tobiasraabe in #766
- Normalize programmatic build_dag config defaults by @tobiasraabe in #767
- Guard against nested live displays by @tobiasraabe in #769
- Parse database_url strings from config by @tobiasraabe in #768
- Clear annotation_locals after collection by @tobiasraabe in #776
- Remove attrs dependency. by @tobiasraabe in #744
- ENH: Make attributes mandatory on PNode and PProvisionalNode by @tobiasraabe in #787
- Test #312 by unxfailing pdb capture tests in CI by @tobiasraabe in #788
- Add Hamilton to workflow tool comparison by @tobiasraabe in #797
- Implement a portable lockfile. by @tobiasraabe in #743
- Migrate docs to zensical by @tobiasraabe in #789
- Fix collection for remote UPath nodes by @tobiasraabe in #820
- Fix stable node signatures for remote UPath nodes by @tobiasraabe in #822
- Refactor DAG internals and lazy-load networkx by @tobiasraabe in #830
- chore: update pre-commit hooks by @tobiasraabe in #833
- Introduce scheduler protocol and simple scheduler by @tobiasraabe in #831
- Harden GitHub Actions workflows with zizmor by @tobiasraabe in #836
- Skip non-interactive live updates by @tobiasraabe in #837
- Add task log capture and export by @tobiasraabe in #821
- docs: consolidate CLI docs into command reference by @tobiasraabe in #858
- Use Zensical card grid on docs homepage by @tobiasraabe in #859
- Reset marker config during unconfigure by @tobiasraabe in #868
- Add
pytask lockcommand by @tobiasraabe in #860 - Improve lockfile documentation structure by @tobiasraabe in #874
- docs: prepare for 0.6.0, improve landing page and little errors by @tobiasraabe in #875
Full Changelog: v0.5.8...v0.6.0