aboutsummaryrefslogtreecommitdiff
path: root/NEWS
blob: b22e20ccbfd7a69b0829bba5f1a2999e320074aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
Version 0.8.0

  * New optional 'project' manifest value that specifies the project the
    package belongs to. See the package dependency manager manual for
    details.

  * Make package manifest 'url' and 'email' values optional.

  * Make default versioning epoch 1 instead of 0 (0 is now reserved for
    "foreign" packages).

  * New --manifest option for the pkg-verify command that allows extracting
    package's manifest file.

  * New --{repositories|packages}-file options for the rep-info command.

    This allows saving both manifests with a single invocation (which is the
    only way to guarantee they are consistent).

Version 0.7.0

  * Support for using git repositories as package repositories. See the
    bpkg-repository-types(1) help topic for details (structure, URL format).

  * Support for ~ and ^ version constraint operators. See the 'depends'
    package manifest value documentation in the bpkg manual for details.

  * The pkg-build command has been significantly reworked. In particular, it
    allows "building" repositories in addition to packages (primarily useful
    with version control-based repositories) and upgrading (--upgrade|-u) or
    patching (--patch|-p) immediate (--immediate|-i) or all (--recursive|-r)
    dependencies of a package. See bpkg-pkg-build(1) for details.

  * The pkg-status has been significantly reworked. In particular, it allows
    querying the status of immediate (--immediate|-i) or all (--recursive|-r)
    dependencies of a package. See bpkg-pkg-status(1) for details.

  * New commands: rep-list, rep-remove, and pkg-checkout. See their respective
    man pages for details.

  * The pkg-{test,install,uninstall} commands now also support --immediate|-i
    and --recursive|-r options (testing/installation of dependencies).

  * The pkg-{update,clean,test,install,uninstall} commands now support the
    --all|-a option.

  * The rep-fetch command now supports shallow fetching and fetching only a
    specific repository. See bpkg-rep-fetch(1) for details.

  * New --for|-f <operation> option to the pkg-update and pkg-build commands.

    This allows executing build2 *-for-X operations (e.g., update-for-install
    or update-for-test) in order to minimize the amount of stuff to be
    updated.

  * New --fetch-timeout common option.

  * The repositories, packages, and signature files now use the .manifest
    extension.

Version 0.6.0

  * Add doc-url and src-url manifest values.

  * Support for repository certificate wildcards.

    A wildcard in the *.example.com form matches any single-level subdomain
    while **.example.com -- any subdomains. See the bpkg-repository-signing(1)
    help topic for details.

Version 0.5.0

  * Multiple usability fixes and improvements.

  * The test suite has been rewritten in Testscript and can now be used on all
    supported platforms.

Version 0.4.0

  * Support for repository signing and authentication.

    The rep-create command can now sign the repository with rep-fetch(fetch)
    and rep-info authenticating it. See the bpkg-repository-signing(1) help
    topic for details.

  * Support for system packages.

    Now a package can be "built" as available from the system rather than
    compiling it from source. To specify a system package the new sys: package
    scheme is used, for example:

    bpkg build sys:libsqlite3

    Currently, if no version is specified for a system package, then it is
    considered to be unknown but satisfying any dependency constraint (such a
    wildcard version is displayed as '*'). In the future bpkg will support
    querying system package managers (rpm, dpkg, pkg-config) for the installed
    version.

    See the pkg-build(build) man page for details.

  * Support for stub packages.

    A stub is a package without source code. It has the special upstream
    version 0 (with a possible revision, for example 0+1) and can only be
    built as a system package.

  * Support for build-time dependencies.

    Now a depends: value in the package manifest that starts with '*' is
    recognized as a built-time dependency.  Currently, build-time dependencies
    are treated in the same way as normal (run-time) ones except that the
    'build2' and 'bpkg' names are recognized as special. They can be used to
    specify a constraint (usually the required minimum version) on the build2
    build system and package manager, respectively. In the future, the
    semantics for build-time dependencies will be extended, for example, to
    verify that they can be executed on the build machine and/or to build them
    in a separate configuration in case of cross-compilation.

  * The pkg-build(build) command now offers to automatically update dependent
    packages that were reconfigured.

    It also supports the following new options:

    --drop-prerequisite|-D
    --update-dependent|-U
    --leave-dependent|-L

     As well as the -K alias for --keep-prerequisite. See the command's man
     page for details.

  * The pkg-drop(drop) command now supports the following new options:

    --keep-dependent|-K,
    --drop-prerequisite|-D
    --keep-prerequisite

    See the command's man page for details.

  * The cfg-add command was renamed to rep-add (the add alias stays the same)
    and cfg-fetch to rep-fetch (the fetch alias stays the same).

  * The new -V option is an alias for --verbose 3 (show all commands).

Version 0.3.0

  * Command line options and arguments can now be specified in any order. This
    is especially useful if you want to re-run the previous command with -v:

    bpkg update libfoo -v

  * The pkg-build command now offers to drop prerequisite packages that are no
    longer necessary. This can happen if a package that is being upgraded or
    downgraded changes its prerequisite set. You can use the
    --keep-prerequisite option to suppress this behavior.

  * The pkg-build command now updates all packages at once (that is, with a
    single build system invocation) instead of sequentially one at a time.
    This should improve performance, especially once parallelism is supported.

  * The rep-create command now loads the description-file and changes-file
    files from the package archives and includes their contents inline into
    the 'packages' manifest file.

Version 0.2.1

  * The pkg-build command no longer considers an argument as a potential
    package directory unless it ends with a directory separator.

Version 0.2.0

  * First public release.