Releases: mrossinek/cobib
v6.0.1
[6.0.1] - 2025-10-25
Pypi: https://pypi.org/project/cobib/6.0.1/
Changed
- coBib no longer requires the
requests-oauthlibpackage - (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
[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.exportersentry-point to support export backend plugins (#160,!407) - unified the journal abbreviation logic of the
--bibtexexported (#187,!410)- consolidated the CLI arguments in
--journal-format - added the
config.exporters.bibtex.journal_formatsetting
- consolidated the CLI arguments in
- the zip exporter can be configured to include/skip file attachments and
external notes (#153,!411)- the
--zipexporter 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_filesandconfig.exporters.zip.skip_notes
- the
- Python 3.14 is now officially tested and supported
- YAML backends for the
importandexportcommands (#188,!412)
Changed
- the
searchcommand results now indicate what source a match came from (#174,!404)- (DEV) the
Matchtuple now requires a third item calledsource
- (DEV) the
- the
cobib.manentry-point now supports registered man-pages in multiple
categories (#186,!406) - the
exportcommand 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.cachesetting has been deprecated since it is no longer
being used (!409) - the
--abbreviateand--dotlessarguments to the--bibteximported;
instead one should use--journal-formatwithabbrevordotless(#187,!410)
Removed
- the deprecated
zoteroimporter backend. Please switch over to using the
cobib-zoteroplugin instead! (#166,!408) - dropped support for Python 3.9
- this also removed the now unneeded
cobib.utils.entry_pointshelper
- this also removed the now unneeded
- the
config.commands.search.highlightssetting which was deprecated in [4.2.0]
v5.5.0
[5.5.0] - 2025-09-27
Pypi: https://pypi.org/project/cobib/5.5.0/
Prelude
coBib has three exciting new features:
- an interactive shell which you can trigger using
cobib --shell - a builtin guided tutorial which you can run with
cobib tutorial - a builtin manual which you can read via the new
mancommand
Added
- the
mancommand (!in the TUI) for viewing coBib's man-pages (#154,!377) - the
cobib.manentry-point to allow plugins to register their own man-pages - the
--shellargument to the maincobibexecutable (#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 thecobib-shell.7man-page for more details. - this also comes with the new
PreShellInputandPostShellInputevents (#163,!381) - this also comes with the new optional dependency
prompt_toolkitwhich
enables advanced line-editing features and preserves the executed command
history of theShell(see also the newconfig.shellsettings) (#165,!384)
- This is mutually exclusive with providing any command and will open an
- the
--bibtexbackend for theimportcommand (!380)- this also comes with the new
PreBibtexImportandPostBibtexImportevents
- this also comes with the new
- the
ModifyCommand.moficiation_detailsattribute which stores the captured log
messages when using the--drymode (!391) - the
cobib.utils.consolemodule (!391) - the
modifycommand can now be applied without a filter to act on all entries (#172,!396) - the
tutorialcommand (#164,!400)
Changed
- moved
cobib.ui.components.LoggingHandlertocobib.utils.logging.LoggingHandler(!391) - when listing entries with
--sorta 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
- this is unlikely to go noticed unless one sorts by a numerical field with
Deprecated
- the
--zoterobackend for theimportcommand (!380)- this backend will be replaced by the
cobib-zoteroplugin in time for the next major release
- this backend will be replaced by the
Fixed
- the progress indicator of search and download progress in the TUI (#158,!376)
- querying for
--helpin 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
opencommand can now handle files opening directly inside the terminal (#173,!397) - renaming files when an entry's
labelchanges duringeditormodify, no longer
hard-codes the filetype topdf(#175,!401)
5.4.0
[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
verbositykeyword argument to theTUIsuch that the log screen of the
TUI respects the--verboselevel provided from the command-line - the
cobib.utils.logging.DEPRECATEDandcobib.utils.logging.HINTconstants
to indicate the custom logging level numeric values - the
--yesargument to thedeletecommand (#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
importcommand will now correctly generate agitcommit - the TUI no longer crashes when using
:showto jump to an unknown label - the TUI no longer crashes when trying to execute an unknown command
- the TUI now respects the
cobib.commandsentry 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
[5.3.0] - 2025-02-08
Pypi: https://pypi.org/project/cobib/5.3.0/
Added
- the ability to remove fields entirely via the
modifycommand (#142,!299) - a hint in the documentation how to filter for (non-)existence of fields (#141)
- the coBib command
promptto the TUI's command palette (!310)
Changed
- HTTP requests are now done inside of
requests.Sessioninstances (!233)
Fixed
- the
Escapekey during an input prompt triggered after aConfirmprompt (e.g. a cancelledquit) - the behavior of the
HomeandEndkeybindings in the TUI's search view (!310) - the ability to
quitthe application from the command palette (!310)
v5.2.3
[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
[5.2.2] - 2024-12-06
Pypi: https://pypi.org/project/cobib/5.2.2/
Breaking Change
- The
config.theme.darkandconfig.theme.designsettings have been replaced
by the newconfig.theme.themesetting, which can be either the name of one
of textual's builtin themes, or a customtextual.theme.Themeinstance
(#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
[5.2.1] - 2024-10-30
Pypi: https://pypi.org/project/cobib/5.2.1/
Fixed
- compatibility with
textual>=0.80
v5.2.0
[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 usedcobib.config.theme.design: to customize the colors themselves- the following settings to customize the appearance of
rich.Syntaxdisplays:cobib.config.theme.syntax.themecobib.config.theme.syntax.background_colorcobib.config.theme.syntax.line_numbers
- the
notecommand (#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_filetypesetting - the
PreNoteCommandandPostNoteCommandevent hooks
- the
- (DEV) the
add_filesargument to theBaseCommand.gitfunction - 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_filessets the default--skip-filesoverwrites this at runtime (this is not actually new)--include-filesoverwrites this at runtime (the opposite)
- For dealing with skipping/including associated notes during searches:
cobib.config.commands.search.skip_notessets the default--skip-notesoverwrites this at runtime (this is not actually new)--include-notesoverwrites this at runtime (the opposite)
- For dealing with skipping/including associated files during searches:
Changed
- the keybinding to recursively toggle all folds in the TUI's search result view
was changed fromENTERtoBACKSPACE(!218) - (DEV)
cobib.ui.components.entry_pointswas moved tocobib.utils.entry_points - replaced the custom help screen with textual's new builtin help panel (!240)
Fixed
- the behavior of the
HomeandEndkeybindings in the TUI's list view (!217) - gracefully handles Zotero imported entries without a
journalfield (#145)
v5.1.2
[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)