Skip to content

Releases: luispedro/jug

Version 2.5.0

12 Mar 11:03

Choose a tag to compare

User-visible improvements

  • Special case saving polars DataFrames in file_store for speed.
  • More flexible parsing of booleans in jug.options.
  • Support project-local configuration files (.jugrc or jugrc). Jug now
    walks up the directory tree from the current working directory (up to the git
    project root) looking for local configuration files. See
    configuration for details.
  • Ship the Jug assistant skill in the Python package and add
    jug install-skills --output DIR to install it into Codex or Claude Code
    skills directories.

Bugfixes

  • Fix _get_terminal_size_linux for Python 3.14, which changed how
    fcntl.ioctl handles string arguments. Use os.get_terminal_size()
    instead (patch by justinrporter, GH
    #120
    ).
  • Fix jug.backend.dict_store for Python 3.
  • Fix describe in jug.task for Python 3.

Internal

  • Jug is now being tested on Python 3.14

Release 2.4.0

08 May 11:26

Choose a tag to compare

User-visible improvements

  • Adds support for lambda functions in Tasklets
  • Adds NoHash class to disable hashing for some arguments. This is in jug.unsafe as it can be used to fool Jug, but it can be useful when there are nuisance arguments that are not relevant for the task (e.g., number of threads)
  • jug.file_store: create files with better permissions

Internal improvements

  • Convert to pyproject.toml for building

Bugfixes

  • Better error detection for permission problems
  • Bugfix when using local imports and jug pack

This release drops support for versions of Python older than 3.7. Technically, it should still work, but they are too old to test in Github CI, so we will not support them.

Version 2.3.1

05 Nov 04:20

Choose a tag to compare

Update for Python 3.12

Version 2.3.0

26 Jun 21:20

Choose a tag to compare

Several minor improvements

  • jug shell: Add get_filtered_tasks()
  • jug: Fix jug --version (which had been broken in the refactoring to use subcommands)
  • jug shell: Fix message in jug shell when there are no dependencies (it would repeatedly print the message stating "this will only be run once")
  • jug pack: Make it much faster to invalidate elements
  • file_store: ensure that the temporary directory exists
  • Drops support for Python 3.4

Version 2.2.3

26 May 11:44

Choose a tag to compare

Fix jug shell on newer versions of IPython

Version 2.2.2

18 Jul 23:16

Choose a tag to compare

Fix jug cleanup when packs are being used (after jug pack)

Version 2.2.0

02 May 22:11

Choose a tag to compare

Major change is addition of jug pack subcommand.

Full Changelog: v2.1.1...v2.2.0

Version 2.1.1

21 Mar 03:42
v2.1.1

Choose a tag to compare

Important are the fixes for Python 3.8 and redis.

Compared to 2.1.0, this patch release includes some missing files in the package.

Full list of changes
* Removed Python 2.7 support
* Fix output encoding for Python 3.8
* Fix bug mixing mapreduce() & status --cache
* Make block_access (used in mapreduce()) much faster (20x)
* Fix important redis bug
* More precise output in cleanup command

Version 2.0.2

12 Jun 12:02
v2.0.2

Choose a tag to compare

Bugfix release.

Compared to 2.0.0:

  • Fix handling of JUG_EXIT_IF_FILE_EXISTS environmental variable
  • Fix passing an argument to jug.main() function
  • Extend --pdb to exceptions raised while importing the jugfile (issue #79)

Version 2.0.1

12 Jun 12:04
v2.0.1

Choose a tag to compare

This version is not recommended: use v2.0.2