Skip to content

Releases: mrossinek/cobib

v6.0.1

25 Oct 10:59
cce06d1

Choose a tag to compare

[6.0.1] - 2025-10-25

Pypi: https://pypi.org/project/cobib/6.0.1/

Changed

  • coBib no longer requires the requests-oauthlib package
  • (DEV) the dummy plugin has been extracted to the
    cobib-plugin-template (!420)

Fixed

  • ensured any non-Python files (such as man-pages) are correctly included in
    installations from Python wheels (#192)

v6.0.0

11 Oct 17:27
c567b9c

Choose a tag to compare

[6.0.0] - 2025-10-11

Pypi: https://pypi.org/project/cobib/6.0.0/

Prelude

The --zotero backend for the import command is now provided by the
cobib-zotero plugin.

coBib now respects the XDG base directory specification
resulting in some changes to default file locations. You will see a warning if
this affects you.

Added

  • the cobib.exporters entry-point to support export backend plugins (#160,!407)
  • unified the journal abbreviation logic of the --bibtex exported (#187,!410)
    • consolidated the CLI arguments in --journal-format
    • added the config.exporters.bibtex.journal_format setting
  • the zip exporter can be configured to include/skip file attachments and
    external notes (#153,!411)
    • the --zip exporter takes the optional arguments: --skip-files,
      --include-files, --skip-notes, and --include-notes
    • these CLI options take precedence over the new configuration settings
      config.exporters.zip.skip_files and config.exporters.zip.skip_notes
  • Python 3.14 is now officially tested and supported
  • YAML backends for the import and export commands (#188,!412)

Changed

  • the search command results now indicate what source a match came from (#174,!404)
    • (DEV) the Match tuple now requires a third item called source
  • the cobib.man entry-point now supports registered man-pages in multiple
    categories (#186,!406)
  • the export command can now only export via one backend at a time (!407)
  • the XDG base directory specification is now being respected. (#151,!409)
    This resulted in the following settings taking on new default values:
    • config.database.cache = "$XDG_CACHE_HOME/cobib/databases/"
    • config.database.file = "$XDG_DATA_HOME/cobib/literature.yaml"
    • config.logging.logfile = "$XDG_STATE_HOME/cobib/cobib.log"
    • config.logging.version = "$XDG_CACHE_HOME/cobib/version"
    • config.shell.history = "$XDG_STATE_HOME/cobib/shell_history"
    • config.utils.file_downloader.default_location = "$XDG_DATA_HOME/cobib/"

Deprecated

  • the config.logging.cache setting has been deprecated since it is no longer
    being used (!409)
  • the --abbreviate and --dotless arguments to the --bibtex imported;
    instead one should use --journal-format with abbrev or dotless (#187,!410)

Removed

  • the deprecated zotero importer backend. Please switch over to using the
    cobib-zotero plugin instead! (#166,!408)
  • dropped support for Python 3.9
    • this also removed the now unneeded cobib.utils.entry_points helper
  • the config.commands.search.highlights setting which was deprecated in [4.2.0]

v5.5.0

27 Sep 21:25
d6c08ab

Choose a tag to compare

[5.5.0] - 2025-09-27

Pypi: https://pypi.org/project/cobib/5.5.0/

Prelude

coBib has three exciting new features:

  1. an interactive shell which you can trigger using cobib --shell
  2. a builtin guided tutorial which you can run with cobib tutorial
  3. a builtin manual which you can read via the new man command

Added

  • the man command (! in the TUI) for viewing coBib's man-pages (#154,!377)
  • the cobib.man entry-point to allow plugins to register their own man-pages
  • the --shell argument to the main cobib executable (#157,!379)
    • This is mutually exclusive with providing any command and will open an
      interactive shell instead, in which multiple commands can be executed in
      sequence. Read the cobib-shell.7 man-page for more details.
    • this also comes with the new PreShellInput and PostShellInput events (#163,!381)
    • this also comes with the new optional dependency prompt_toolkit which
      enables advanced line-editing features and preserves the executed command
      history of the Shell (see also the new config.shell settings) (#165,!384)
  • the --bibtex backend for the import command (!380)
    • this also comes with the new PreBibtexImport and PostBibtexImport events
  • the ModifyCommand.moficiation_details attribute which stores the captured log
    messages when using the --dry mode (!391)
  • the cobib.utils.console module (!391)
  • the modify command can now be applied without a filter to act on all entries (#172,!396)
  • the tutorial command (#164,!400)

Changed

  • moved cobib.ui.components.LoggingHandler to cobib.utils.logging.LoggingHandler (!391)
  • when listing entries with --sort a natural sorting order will be used (#170,!395)
    • this is unlikely to go noticed unless one sorts by a numerical field with
      varying numbers of digits

Deprecated

  • the --zotero backend for the import command (!380)
    • this backend will be replaced by the cobib-zotero plugin in time for the next major release

Fixed

  • the progress indicator of search and download progress in the TUI (#158,!376)
  • querying for --help in the TUI no longer crashes with certain commands (#161,!378)
  • a bug when parsing author names and the BibTeX source contained line breaks (!380)
  • inline editing a new field during review no longer breaks (#168,!393)
  • the open command can now handle files opening directly inside the terminal (#173,!397)
  • renaming files when an entry's label changes during edit or modify, no longer
    hard-codes the filetype to pdf (#175,!401)

5.4.0

02 Aug 19:12
3d06570

Choose a tag to compare

[5.4.0] - 2025-08-02

Pypi: https://pypi.org/project/cobib/5.4.0/

Prelude

The online documentation and man-page(s) have been overhauled entirely.
Package maintainers beware that the Makefile has new dependencies!

Added

  • the verbosity keyword argument to the TUI such that the log screen of the
    TUI respects the --verbose level provided from the command-line
  • the cobib.utils.logging.DEPRECATED and cobib.utils.logging.HINT constants
    to indicate the custom logging level numeric values
  • the --yes argument to the delete command (#152,!363)

Changed

  • the single man-page (cobib.1) has been split into many and their content has
    been majorly updated (!342)
  • the online documentation has been overhauled and now integrates the man-pages
    directly (to avoid duplication) (!342)

Fixed

  • the import command will now correctly generate a git commit
  • the TUI no longer crashes when using :show to jump to an unknown label
  • the TUI no longer crashes when trying to execute an unknown command
  • the TUI now respects the cobib.commands entry points
  • the TUI now respects the active visual selection correctly for commands triggered via the prompt
  • the TUI no longer crashes when trying to sort after aborting a previous sort
  • the TUI no longer crashes when a search returns no results (#150,!335)
  • the TUI no longer crashes when loading an empty database (#150,!335)
  • some edge cases for resolving DOI URLs have been resolved (#155,!355)

5.3.0

08 Feb 21:01
c90793e

Choose a tag to compare

[5.3.0] - 2025-02-08

Pypi: https://pypi.org/project/cobib/5.3.0/

Added

  • the ability to remove fields entirely via the modify command (#142,!299)
  • a hint in the documentation how to filter for (non-)existence of fields (#141)
  • the coBib command prompt to the TUI's command palette (!310)

Changed

  • HTTP requests are now done inside of requests.Session instances (!233)

Fixed

  • the Escape key during an input prompt triggered after a Confirm prompt (e.g. a cancelled quit)
  • the behavior of the Home and End keybindings in the TUI's search view (!310)
  • the ability to quit the application from the command palette (!310)

v5.2.3

15 Dec 15:21
d4d3741

Choose a tag to compare

[5.2.3] - 2024-12-15

Pypi: https://pypi.org/project/cobib/5.2.3/

Fixed

  • the interactive handling of notes inside the TUI (#148,!288)

v5.2.2

06 Dec 20:52
be1532c

Choose a tag to compare

[5.2.2] - 2024-12-06

Pypi: https://pypi.org/project/cobib/5.2.2/

Breaking Change

  • The config.theme.dark and config.theme.design settings have been replaced
    by the new config.theme.theme setting, which can be either the name of one
    of textual's builtin themes, or a custom textual.theme.Theme instance
    (#147,!279). Due to how recent these settings have been introduced (as part of
    5.2.0), I am opting for a quick removal in this bugfix release rather than a
    proper version bump (in the sense that they have likely not been adopted, yet)
    and the severness of the bug that this is causing outweighs the needs here.

Fixed

  • compatibility with textual>=0.86

v.5.2.1

30 Oct 20:01
5aa71ed

Choose a tag to compare

[5.2.1] - 2024-10-30

Pypi: https://pypi.org/project/cobib/5.2.1/

Fixed

  • compatibility with textual>=0.80

v5.2.0

30 Oct 19:41
7f1a254

Choose a tag to compare

[5.2.0] - 2024-10-30

Pypi: https://pypi.org/project/cobib/5.2.0/

Prelude

With the addition of the new note command, the database entry fields called
"note" have obtained a special meaning. Use the lint command to check
whether your database is affected by this. If it is, you should rename those
fields.

Added

  • new configuration settings to customize the appearance of coBib (!222):
    • cobib.config.theme.dark: to specify whether a dark or light theme is used
    • cobib.config.theme.design: to customize the colors themselves
    • the following settings to customize the appearance of rich.Syntax displays:
      • cobib.config.theme.syntax.theme
      • cobib.config.theme.syntax.background_color
      • cobib.config.theme.syntax.line_numbers
  • the note command (#139,!206).
    Please refer to its online documentation or the man-page for more details on
    how to use it.
    This new command comes with:
    • the cobib.config.commands.note.default_filetype setting
    • the PreNoteCommand and PostNoteCommand event hooks
  • (DEV) the add_files argument to the BaseCommand.git function
  • Python 3.13 is now officially tested and supported
  • new configuration settings for the search command (#146,!269)
    • For dealing with skipping/including associated files during searches:
      • cobib.config.commands.search.skip_files sets the default
      • --skip-files overwrites this at runtime (this is not actually new)
      • --include-files overwrites this at runtime (the opposite)
    • For dealing with skipping/including associated notes during searches:
      • cobib.config.commands.search.skip_notes sets the default
      • --skip-notes overwrites this at runtime (this is not actually new)
      • --include-notes overwrites this at runtime (the opposite)

Changed

  • the keybinding to recursively toggle all folds in the TUI's search result view
    was changed from ENTER to BACKSPACE (!218)
  • (DEV) cobib.ui.components.entry_points was moved to cobib.utils.entry_points
  • replaced the custom help screen with textual's new builtin help panel (!240)

Fixed

  • the behavior of the Home and End keybindings in the TUI's list view (!217)
  • gracefully handles Zotero imported entries without a journal field (#145)

v5.1.2

23 Jun 11:20
bd4b0b6

Choose a tag to compare

[5.1.2] - 2024-06-23

Pypi: https://pypi.org/project/cobib/5.1.2/

Fixed

  • support database locations in nested folders of a git repository (!204)