Skip to content

Releases: mrossinek/cobib

v5.1.2

23 Jun 11:20
bd4b0b6
Compare
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)

v5.1.0

28 May 18:20
229a2d8
Compare
Choose a tag to compare

[5.1.0] - 2024-05-28

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

Prelude

Check out my blog post to learn more about the features of this new release:
https://mrossinek.gitlab.io/programming/cobib-becomes-fuzzy/

Added

  • approximate (or fuzzy) filter matching and search functionality (#107,#130,!177)
    • the list and search commands now support the following features to
      perform approximate filter matching and searching, respectively:
      • LaTeX sequences can be decoded to Unicode characters:
        • using --decode-latex from the command-line
        • setting config.commands.list_.decode_latex = True
        • setting config.commands.search.decode_latex = True
      • Unicode characters can be converted to a close ASCII equivalent:
        • using --decode-unicode from the command-line
        • setting config.commands.list_.decode_unicode = True
        • setting config.commands.search.decode_unicode = True
      • a number of fuzzy errors can be set (this requires the optional dependency
        regex to be installed):
        • using --fuzziness <int> from the command-line
        • setting config.commands.list_.fuzzines to some integer
        • setting config.commands.search.fuzzines to some integer
  • (DEV) the following method arguments have been converted to be accepted only
    as keyword arguments:
    • in cobib.database.Entry.matches: ignore_case
    • in cobib.database.Entry.search: context, ignore_case, and skip_files
  • (DEV) the return-type of cobib.database.Entry.search has been changed

v5.0.1

01 May 13:52
1317908
Compare
Choose a tag to compare

[5.0.1] - 2024-05-01

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

Fixed

  • the ability to use an empty string as the separator in config.database.format.label_suffix (#138)

v5.0.0

28 Apr 12:14
cdc91cb
Compare
Choose a tag to compare

[5.0.0] - 2024-04-28

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

Added

  • the ability to add custom commands, importers, and parsers through entry points (#135, !139)
    • (DEV) a dummy plugin show-casing these extensions

Changed

  • the entire shell_helper module has been replaced as follows (!139):
    • the following deprecated helper methods were removed without replacement:
      • _list_commands
      • _list_filters
      • _list_labels
    • the following secondary commands have been refactored:
      • _lint_database is now cobib.commands.lint.LintCommand
      • _unify_labels is now cobib.commands.unify_labels.UnifyLabelsCommand
      • _example_config is now cobib.config.command.ExampleConfigCommand
  • the interactive disambiguation mechanism during the add command now handles
    multiple matching related entries (#121,!168)
    • this includes the ability to cancel the disambiguation and entry addition

Removed

  • the previously deprecated console attribute of all commands has been removed (!139)
  • the previously deprecated prompt attribute of all commands has been removed (!139)
  • the cobib.ui.shell_helper and cobib.utils.shell_helper modules have been removed (!139)
  • the previously deprecated --update argument of the add command (!168)
  • the previously deprecated --skip-existing argument of the add command (!168)
  • the previously deprecated LabelSuffix.CAPTIAL attribute (!168)
  • Python 3.8 is no longer supported (!173)

v4.5.0

17 Mar 15:44
1a5b9da
Compare
Choose a tag to compare

[4.5.0] - 2024-03-17

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

Added

  • the new cobib.utils.context.get_active_app method which returns any running
    textual App and replaces the need for the cobib.utils.prompt.Prompt.console
    and cobib.utils.progress.Progress.console (which have been removed) (!137)
  • cobib.parsers.YAMLParser.parse can now also parse strings directly (rather
    than always interpreting the argument as the path to a file) (!137)
  • the review command (#131,!137).
    Please refer to its online documentation or the man-page for more details on
    how to use it.
  • the cobib.database.Entry.merge method (!137)

Changed

  • log messages will now be displayed in the LogPanel of the TUI (which can be
    toggled with the z keybinding) (#132,!133)
  • the cobib.ui.components.prompt module has been refactored into cobib.utils.prompt (!133)

Deprecated

  • the console argument to all commands has been deprecated since it no longer
    has any effect (!133)
  • the prompt argument to all commands has been deprecated since it no longer
    has any effect (!133)
  • access to the following shell_helper commands will change in the next release:
    • cobib _lint_database will become cobib lint
    • cobib _unify_labels will become cobib unify_labels
    • cobib _example_config will become cobib example_config

Fixed

  • loading a cached database will be bypassed during _lint_database (#133)
    • to support this the bypass_cache keyword-argument was added to the
      Database.read method

Removed

  • official Windows support label. It might work but no guarantees are made (#136)

v4.4.0

15 Dec 11:59
140d402
Compare
Choose a tag to compare

[4.4.0] - 2023-12-15

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

Added

  • a primitive caching mechanism to speed up the database loading. This feature
    is enabled by default and will store its cache at ~/.cache/cobib/databases/.
    You can configure the location via config.database.cache or even disable
    caching entirely by changing this setting to None. (see also #129 and !108)
  • added the -r/--remove option to the modify command (#128)
    • this can achieve the opposite of -a/--add in the sense that it will try to
      remove the specified modification from a list or subtract a number from
      numeric values
    • other field types than lists or numbers are not supported by this option
  • added the -l/--limit option to the list command (#127)
    • exposed the ListCommand.sort_entries method in the public API
    • added the ListCommand.execute_dull method in the public API
  • the search, export, and modify commands now also support sorting and limiting options to be
    passed onto the list command (along with the already existing filtering options)
  • the config.tui.tree_folding setting which allows you to configure the
    default folding state of the tree nodes in the TUI's search result view
  • the ENTER binding in the TUI's search result view to recursively toggle all
    folds of the current node

Changed

  • when using the TUI you may now use the :show <label> command to jump to the
    specified label (#126,!116)
  • the search command now reports its progress live (!117)

Fixed

  • unblocked the vertical scrollbar of the TUI's list view from the scroll offset

v4.3.1

12 Nov 11:33
da8977c
Compare
Choose a tag to compare

[4.3.1] - 2023-11-12

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

Breaking Change

Note, that the introduction of the detailed author information parsing in v4.3.0
resulted in possible breaking of a custom config.database.formatlabel_default
setup. This bugfix release is meant to emphasize this breaking change and
updates the documented example in the example configuration file. For the sake
of verbosity, here is the change applied to the example:

  • old: "{unidecode(author.split(' and ')[0].split()[-1])}{year}"
  • new: "{unidecode(author[0].last)}{year}"

v4.3.0

12 Nov 11:23
e7f4242
Compare
Choose a tag to compare

[4.3.0] - 2023-11-12

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

Prelude

Detailed Authors

coBib now has the ability to store more detailed author information (see #92 and
!88). This means, that the author field of an entry is analyzed in more detail
and coBib will separate out the first and last names as well as name pre- and
suffixes. The new setting config.database.format.author_format determines,
whether this detailed information is kept directly in the database (the
AuthorFormat.YAML setting; the new default) or is only constructed at
runtime and the author field is still simply saved in BibLaTeX form
(AuthorFormat.BIBLATEX).

Note, that the YAML format also implies, that Unicode characters are allowed
and will not be encoded in LaTeX form. This has an effect on how you may need
to format your searches. See also #130 for some more insights on this.

If you have company names or any author name which you want to have treated
verbatim, you can simply wrap it in curly braces (e.g. {My Company}).
Refer to the online documentation of cobib.database.Author and the above
setting for more details.

Wiki

coBib now has a Wiki where we can
gather useful configuration resources and other details which may not make it
into the full documentation.

For example, if you are interested in the tracking more metadata of your
database (as suggested in #123), be sure to check out
this wiki page!

Added

  • the -f short-hand alias for the --field argument of the open command
  • the opened_entries attribute of the OpenCommand (which is accessible during the PostOpenCommand hook)
  • the new git command to simplify running git operations on the database (#124)
  • new bindings for Home, End, PageUp, and PageDown in the TUI
  • (DEV) added a new DEPRECATED logging level which has value 45
  • Python 3.12 is now officially tested and supported
  • the config.commands.show.encode_latex setting
  • the encode_latex attribute to the BibtexParser
  • the config.database.format.verbatim_fields setting
  • the config.database.format.author_format setting. The new default behavior
    is to store detailed author information in YAML form.
  • the encode_latex keyword-argument to the Entry.stringify method
  • the Entry.formatted method. This replaces the Entry.escape_special_chars method.

Changed

  • an error will be logged when a file is not found during the open command
  • the following commands are now treated specially when run via the : prompt of the TUI:
    • init: will log an error
    • git: will log an error
    • show: will log a warning

Deprecated

  • The LabelSuffix.CAPTIAL value because it was misspelled. Please use LabelSuffix.CAPITAL instead.

Fixed

  • non-asynchronous commands triggered via the : prompt of the TUI will no longer break it (#125)
  • ensure UTF-8 encoding is used for downloaded data (this fixes many odd encounters w.r.t. special characters)
  • the spelling of the LabelSuffix.CAPITAL value (it used to be spelled LabelSuffix.CAPTIAL)

Removed

  • the Entry.escape_special_chars method. Use Entry.formatted instead.

v4.2.0

08 Aug 18:46
4ea556c
Compare
Choose a tag to compare

[4.2.0] - 2023-08-08

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

Added

  • added the config.tui.scroll_offset setting
  • added the --field command line option to the open command
  • (DEV) added a new HINT logging level which has value 35 and thus allows to
    provide information to the user with a higher priority than WARNING
  • added the new config.tui.preset_filters (#114)
    • preset filters can be selected from the TUI via the p key binding
    • the first 9 filters can be selected directly by pressing the respective number
    • pressing 0 resets any applied filter
  • implemented special tags (#63,!83)
    • adds new builtin tags which will trigger special highlights of entries: new, high, medium, low
    • adds the new config.theme settings section for configuring these settings
    • you can also add more special tags via config.theme.tags.user_tags
  • added the --skip-files command line option to the search command

Changed

  • unicode symbols in entry labels will now be replaced with ascii ones (#119,#120)
    • this is configured via the config.database.format.default_label setting, so if you are using a
      custom value for this, be sure to update your config to make use of this feature
  • some user-visible logging messages around label disambiguation have been added (see also #121)
  • a warning has been added when the YAML parser encounters identical labels (which normally should
    not occur in the database but if it does, coBib does not really know how to resolve this)
  • DOI redirect links are now followed recursively (up to 3 times), improving PDF
    download link detection in the process (#97)

Deprecated

  • the config.commands.search.highlights section is deprecated in favor of config.theme.search

Fixed

  • retain scroll position in the TUI's list view

v4.1.0

11 Jun 11:22
9a58966
Compare
Choose a tag to compare

[4.1.0] - 2023-06-11

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

Added

  • added the following settings which specify whether or not to preserve
    associated files during the respective commands being run:
    • config.commands.delete.preserve_files
    • config.commands.edit.preserve_files
    • config.commands.modify.preserve_files
  • added a confirmation prompt before deleting an entry (#110)
    • this prompt can be disabled by setting config.commands.delete.confirm to False
  • added the --no-ignore-case (-I for short) command line options to the
    list and search command (#116)
  • added the --no-preserve-files command line options to the delete, edit
    and modify command (#116)
  • added the config.commands.search.context setting which configures the
    default number of context lines to be provided for search query matches
  • added more options to configure the automatic download behavior:
    • the new config.commands.add.skip_download setting
    • the new --force-download option of the add command
    • the new config.commands.import_.skip_download setting
    • the new --force-download option of the import command
  • the user is asked for confirmation when quitting the TUI (!71)

Changed

  • refactored the TUI by leveraging textual's Screen concept (#111,!71)
    • this means the TUI will look slightly different but no real functional change has occurred
    • the view of an Entry can now be scrolled when the output exceeds the available space
  • switched from the BeautifulSoup HTML parser to lxml
    • this is supposed to give more accurate results but adds an extra dependency

Deprecated

  • The following shell helpers are no longer used with the zsh completion being
    removed. Thus, these methods will be removed in the future:
    • cobib _list_commands
    • cobib _list_filters
    • cobib _list_labels
    • If you see warnings because of this while you are using the CLI, you
      probably still have the (now removed) zsh completion script installed. You
      should remove the _cobib file which will be located in one of the
      directories listed in your $FPATH environment variable.

Fixed

  • the proper pre-population of the TUI prompt during the sorting action (#117)
  • preserves the value of config.commands.list_.default_columns and
    properly removes a field if it is no longer sorted by in the TUI (#117)
  • properly updates the list of entries in the TUI after changing the database contents;
    for example via add (#113) or delete (#113) or edit (#118)
  • an issue where file-accessing operations performed on a newly added entry within
    the same TUI session would fail because the path would not be iterated correctly
  • the live updating of the download progress bar inside the TUI (#112)

Removed

  • the crude and very slow zsh completion script