Releases: mrossinek/cobib
v5.1.2
v5.1.0
[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
andsearch
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
- using
- 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
- using
- 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
- using
- LaTeX sequences can be decoded to Unicode characters:
- the
- (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
, andskip_files
- in
- (DEV) the return-type of
cobib.database.Entry.search
has been changed
v5.0.1
[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
[5.0.0] - 2024-04-28
Pypi: https://pypi.org/project/cobib/5.0.0/
Added
- the ability to add custom
commands
,importers
, andparsers
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 nowcobib.commands.lint.LintCommand
_unify_labels
is nowcobib.commands.unify_labels.UnifyLabelsCommand
_example_config
is nowcobib.config.command.ExampleConfigCommand
- the following deprecated helper methods were removed without replacement:
- 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
- this includes the ability to
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
andcobib.utils.shell_helper
modules have been removed (!139) - the previously deprecated
--update
argument of theadd
command (!168) - the previously deprecated
--skip-existing
argument of theadd
command (!168) - the previously deprecated
LabelSuffix.CAPTIAL
attribute (!168) - Python 3.8 is no longer supported (!173)
v4.5.0
[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 thecobib.utils.prompt.Prompt.console
andcobib.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 thez
keybinding) (#132,!133) - the
cobib.ui.components.prompt
module has been refactored intocobib.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 becomecobib lint
cobib _unify_labels
will becomecobib unify_labels
cobib _example_config
will becomecobib 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
- to support this the
Removed
- official Windows support label. It might work but no guarantees are made (#136)
v4.4.0
[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 viaconfig.database.cache
or even disable
caching entirely by changing this setting toNone
. (see also #129 and !108) - added the
-r/--remove
option to themodify
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
- this can achieve the opposite of
- added the
-l/--limit
option to thelist
command (#127)- exposed the
ListCommand.sort_entries
method in the public API - added the
ListCommand.execute_dull
method in the public API
- exposed the
- the
search
,export
, andmodify
commands now also support sorting and limiting options to be
passed onto thelist
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
[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
[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 theopen
command - the
opened_entries
attribute of theOpenCommand
(which is accessible during thePostOpenCommand
hook) - the new
git
command to simplify running git operations on the database (#124) - new bindings for
Home
,End
,PageUp
, andPageDown
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 theBibtexParser
- 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 theEntry.stringify
method - the
Entry.formatted
method. This replaces theEntry.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 errorgit
: will log an errorshow
: will log a warning
Deprecated
- The
LabelSuffix.CAPTIAL
value because it was misspelled. Please useLabelSuffix.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 spelledLabelSuffix.CAPTIAL
)
Removed
- the
Entry.escape_special_chars
method. UseEntry.formatted
instead.
v4.2.0
[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 theopen
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 thanWARNING
- 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
- preset filters can be selected from the TUI via the
- 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
- adds new builtin tags which will trigger special highlights of entries:
- added the
--skip-files
command line option to thesearch
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
- this is configured via the
- 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 ofconfig.theme.search
Fixed
- retain scroll position in the TUI's list view
v4.1.0
[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
toFalse
- this prompt can be disabled by setting
- added the
--no-ignore-case
(-I
for short) command line options to the
list
andsearch
command (#116) - added the
--no-preserve-files
command line options to thedelete
,edit
andmodify
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 theadd
command - the new
config.commands.import_.skip_download
setting - the new
--force-download
option of theimport
command
- the new
- 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 tolxml
- 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 viaadd
(#113) ordelete
(#113) oredit
(#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