changelog.rst 7.17 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
.. _changelog:

=========
Changelog
=========

All notable changes to this project should be documented here.
For more detailed information have a look at the |git log|.

.. _version unreleased:

[Unreleased]
------------

15
16
17
18
19
20
Added
^^^^^

* A section in the documentation now provides a high-level introduction to how
  repod works as well as examples on how to add packages, write sync databases
  and use a repository with pacman.
21
* Classes to allow transactional tasks with pre and post checks.
22
* Write sync databases as part of a transaction.
23
24
25
26
* The command ``repod-file repo importpkg`` now automatically creates symlinks
  in a subdirectory of a repository's management repository from each package
  name to their respective ``pkgbase``. This allows for easier search by
  package name.
27
28
29
30
31
32
33
34
35

Changed
^^^^^^^

* The command ``repod-file repo importpkg`` now uses transactional tasks, that
  are chained into an atomic action, which automatically reverts itself if any
  of the tasks fail.
* The command ``repod-file repo importpkg`` is now able to import packages of
  differing ``pkgbase``.
36
37
38
39
* The command ``repod-file repo importpkg`` now automatically also writes the
  sync databases of the repository after adding packages.
* The command ``repod-file repo writedb`` now writes the sync databases in a
  transaction.
40
41
* The CLI now automatically checks whether all consumed packages match the
  target repository's CPU architecture.
42

David Runge's avatar
David Runge committed
43
44
45
[0.2.2] - 2022-08-29
--------------------

46
47
48
49
50
51
52
53
Fixed
^^^^^

* The implementation of ``PkgInfoV2`` was based on an early patch series
  towards pacman that had been superseded since. Instead of a top-level
  ``pkgtype`` attribute, ``PkgInfoV2`` now tracks an optional set of extended/
  extra data (``xdata``), which is in line with the implementation in pacman.

54
55
56
57
58
59
Changed
^^^^^^^

* Return help strings instead of raising ``RuntimeError`` if no commands are
  provided to ``repod-file`` or any of its subcommands.

David Runge's avatar
David Runge committed
60
61
62
[0.2.1] - 2022-08-23
--------------------

63
64
65
66
67
68
Fixed
^^^^^

* The ``justfile`` is now contained in the sdist tarball and fixed to install
  using a destination directory (destdir).

David Runge's avatar
David Runge committed
69
70
71
[0.2.0] - 2022-08-22
--------------------

72
73
74
Added
^^^^^

75
* Man page for ``repod.conf``.
76
* Per repository debug repository handling in configuration layer and CLI.
David Runge's avatar
David Runge committed
77
78
* Package verification based on ``pacman-key`` may be configured by setting the
  global configuration option ``package_verification`` to ``pacman-key``.
79
80
81
82
83
* A ``PackageDescV2`` which removes the ``%PGPSIG%`` identifier in the ``desc``
  files rendered from it. The default is still ``PackageDescV1`` (which
  provides the ``%PGPSIG%`` identifier), but users may already try the new
  functionality using the ``syncdb_settings.desc_version`` option in
  ``repod.conf`` (see ``man 5 repod.conf``).
84
85
86
87
88
89
90
91
92
* The ``repod.repo.package.repofile`` module provides functionality for file
  operations on repository files (e.g. package files or package signature
  files). The ``RepoFile`` class allows moving, copying, symlinking and
  removing of files.
* The ``repod-file repo importpkg`` subcommand which supersedes ``repod-file
  package import``, while also implementing the addition of package files (and
  optionally their signatures) to a given repository's package pool directory
  and creating the symlinks for them in the repository's package repository
  directory.
David Runge's avatar
David Runge committed
93
* A justfile for installing directories required for system mode and man pages.
94
95
96
97
* The ``repod-file repo importdb``, ``repod-file repo importpkg`` and
  ``repod-file repo writedb`` commands now accept a ``-a``/ ``--architecture``
  flag to define the target repository architecture, if repositories of the
  same name but differing CPU architectures exist.
98

99
100
101
Changed
^^^^^^^

102
103
104
* Configuration layer is now used in the CLI and required directories for
  repositories and data are automatically created upon launching it. The
  configuration layer distinguishes between system-wide and per-user locations.
David Runge's avatar
David Runge committed
105
106
107
* Extend ``OutputPackageBaseV1`` with optional ``.BUILDINFO`` data retrieved
  from packages using the new ``OutputBuildInfo`` (and child classes). This
  adds a relevant subset of ``.BUILDINFO`` files to the management repository.
108
109
110
111
112
113
* The ``repod-file`` subcommand ``management`` is renamed to ``repo`` and its
  subsubcommands ``import`` and ``export`` are renamed to ``importdb`` and
  ``writedb`` (respectively).
  The ``repod-file repo writedb`` command only accepts the name of the target
  repository and no target file anymore, as the repository sync database files
  are written to the binary package directory of the target repository.
114
115
116
* The email validation done for the ``Packager`` model does not by default
  check for deliverability anymore. In the future this is supposed to become
  configurable.
117
118
* The database compression of repositories can now only be set in the
  configuration file.
119

120
121
122
123
124
Fixed
^^^^^

* ``.PKGINFO`` values with equal signs are now handled correctly (e.g., equal
  signs in descriptions of ``optdepends`` entries).
125
* The ``usersettings`` fixture no longer leaks test state into the user system.
126
127
128
129
* The calculation of ``SHA-256`` checksums for packages in
  ``repod.file.package.Package.from_file`` were not done correctly, because
  after a previous ``MD5`` checksum calculation the package file was not read
  in its entirety.
130
* Fix file mode validation for ``.MTREE`` files.
131
* Fix path validation for ``.MTREE`` files.
132
133
134
135
* The conversion of special characters in octal representation in the ``mtree``
  files did not work for non-English unicode characters (e.g. cyrillic) and
  attempting to import packages that contain file names with such characters
  would fail.
136
137
138
* Some of the online documentation did not reflect the current state of the CLI
  anymore, so all information for the ``repod-file`` has been consolidated with
  its man page.
139

140
141
142
143
144
Removed
^^^^^^^

* The ``repod-file`` subcommand ``syncdb`` is removed due to being the reverse
  pendant to the ``management`` command.
David Runge's avatar
David Runge committed
145
146
* The ``repod-file package import`` subcommand as it is superseded by
  ``repod-file repo importpkg``.
147

David Runge's avatar
David Runge committed
148
149
150
151
152
153
154
155
[0.1.0] - 2022-07-02
--------------------

Changed
^^^^^^^

* Documentation on installation and dependencies.

156
157
158
[0.1.0-alpha1] - 2022-07-01
---------------------------

159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
Added
^^^^^

* Functionality to validate package files in accordance with current versions
  of ``.BUILDINFO``, ``.MTREE`` and ``.PKGINFO`` files.
* Functionality to validate repository sync databases in accordance with
  current versions of ``desc`` and ``files`` files found in the default and
  files sync databases.
* Functionality to describe the contents of repository sync databases in the
  context of a management repository consisting of JSON files per ``pkgbase``.
* Functionality to export JSON schema which can be used to validate existing
  functionality and data formats.
* A self-validating configuration layer which will be used in upcoming versions
  of the project to allow configuration of a ``repod`` service.
* The commandline utility ``repod-file`` to expose existing functionality for
  package inspection, data transformation and JSON schema export.
* Documentation on internals of the project and the ``repod-file`` commandline
  utility.
* Manual page for ``repod-file``.

.. |git log| raw:: html

  <a target="blank" href="https://man.archlinux.org/man/git-log.1">git log</a>