- Deprecate
--pinnedin favor of--dev-pkgin thebuildcommand. The semantics is the same and with opam < 2.0 it should still be set to"%{pinned}%". With opam >= 2.0 it should be set to"%{dev}%"this allows to infer the correct build context for (non-pinned) VCS packages (#79). - Improve
ocamlbuildcross-compilation support. Adds theConf.toolchainconfiguration key. If specified on the command line or via theTOPKG_CONF_TOOLCHAINenvironment variable, its value is used with the-toolchainoption introduced inocamlbuild0.11.0 in default build commandPkg.build_cmd. If unspecified the default build command is left unchanged. Thanks to whitequark for the patch. - Add the
--raw ARGrepeteable option to thebuildcommand. Allows to skip package build instructions and opam install file generation to simply invoke the package build command with theARGargument. topkg doc(ocamlbuild specific). Build the documentation using the packagebuildcommand and--rawarguments. Avoids problems encountered by packages that use ocamlbuild plugins (#80).- Add the
cma,cmxaandcmxsoptional arguments toPkg.mllib. These allow to precisely specify what you (don't) want to build. They all default totrue. Thanks to Stephen Dolan for the suggestion. - Add
Pkg.lib_rootandPkg.libexec_rootinstall fields. Warning these are opam 2.0 only fields. - Change
testcommand for multi-opam packages by mirroring the way thebuildcommand works. The--pkg-nameor-noption specifies the package's test to run or list. If unspecified the default package is tested, beforepkg/pkg.ml testwould list and run the last built package. This means that if you havepkg/pkg.ml build -n PKG && pkg/pkg testinvocations you need to turn them intopkg/pkg.ml build -n PKG && pkg/pkg test -n PKG. - Fix
topkg run, do not run.soand.cmxsfiles. - Fix changelog parsing. Subsections of an entry were not being properly parsed (#103).
- Fix
topkg opam pkg'surlfile generation for github users which havedev-repo:with opam "version control bound" uris (#106). - Depends at least on
cmdliner.1.0.0andopam-format(opam-libis out).
- Add
Pkg.{nothing,flatten}. Thanks to David Kaloper Meršinjak for the suggestion and the patch.
- Add
Conf.debugger_supporta configuration key to inform to the build system it should build and install build artefacts for debuggers. Packages usingPkg.{mlib,clib}descriptions will handle this automatically. The key can be set globally in a switch via theTOPKG_CONF_DEBUGGER_SUPPORTenvironment variable (#77). - Add
Pkg.{ocb_tag,ocb_bool_tag,ocb_bool_tags}to easily extendocamlbuildinvocations according to the build configuration (#78). Thanks to David Kaloper Meršinjak for the idea and the patch. - Add
Exts.interfacefor installingmlionly compilation units (#74). Pkg.mllibdescription. Correct support for mllib which have subpaths (#75).- Documentation generation. Fix support in the presence of
ocamlbuildplugins (#80). Thanks to David Kaloper Meršinjak for the report and the patch. - Documentation generation. If there is no
doc/style.cssbutodigis installed, use itsocamldocstylesheet. This allows to see how it will be rendered byodigand avoids maintaining stylesheets in repos.
- Better package parsing in
ocamlbuild_tags files. Thanks to Thomas Gazagnaire for the report. - Remove references to internal names in the API.
- Add a
--profileconfiguration key. Thanks to David Kaloper Meršinjak for the patch. - Add
OS.File.write_subst. Allows clients to substitute watermark like variables in hooks. - Add
Pkg.{build,clean}_cmd. Allows clients to extend the default build system invocation. - Be more quiet on package builds (log the
.installfile written message at info level). - Remove Topkg_care.Browser. Depend on the
webbrowserpackage instead.
- Test description, allow to specify a working directory
for the test via the
?diroptional argument. Thanks to Thomas Gazagnaire for suggesting. - Fix behaviour of pinned distribution watermarking when
git repo is not at the root directory of the package and
--vcs trueis forced. - Fix pkg/pkg.ml's main's ignoring
TOPKG_VERBOSITY's value. - Toy GitHub delegate: fix log verbosity propagation.
- Fix
Vcs.is_dirtyto detect untracked files. Thanks to Hannes Mehnert. - Pager, do not try to discover if
TERMvariable is undefined. - Add
topkg runto easily run built executables.
- Add
pkg/pkg.ml cleancommand. Removes the opam install file and performs an effect that can be specified viacleanin thePkg.builddescription. Thetopkg cleancommand now simply forwards to this command. - Change the signature of the build command
cmdin thePkg.buildspecification. This is an API breaking change but does not affect any published package. See #53 for details. - Add
Conf.OCaml.word_size. Reports the bit word size for the programs that are produced by a given compiler. - Build configuration key parsing. Fail hard on any error instead of warn and continue (#56). Thanks to Thomas Gazagnaire for suggesting the previous idea was a terrible one.
- Add a
--debugconfiguration key. Defaults totrueor the value of theTOPKG_CONF_DEBUGenvironment variable. The default build system invocation is changed to enable save of debugging information in build artefacts if they key istrue. The key is generally not meant to be specified by packagers so that the policy can changed in bulk over topkg packages (#54). Pkg.files_to_watermarkdefault function. Make sure only files are returned (#58). Fixes problems with symlinks to directories in git checkout. Thanks to Thomas Gazagnaire for reporting.- Improve error message of some
Topkg.OSfunctions (#57). - Remove deprecated
--installerconfiguration key. topkg lintfix regression in error opam lint report.
topkg docadd short option-dfor--dev.- Fix
Pkg.mllib, module list was lowercased rather than uncapitalized.
- Add test description and run support. New
topkg testcommand. - Add distribution publication description support. Allows to define the
set of default publication artefacts in the package description. The cli
syntax of
topkg publishfor alternative artefacts changes fromalt KINDtoalt-KIND. - Distributed (and thus installed) opam files are now properly
versioned via the
version:field. - Improve tarball reproducibility across systems by not relying on the VCS checkout state for determining the read and write rights (#43).
- opam package submission: use the
opam-publishsubmit message to append the release notes to the submission. - Toy GitHub delegate: improve user authentication by trying to steal an existing opam-publish token.
- Toy GitHub delegate: improve package documentation publication. Thanks to Thomas Gazagnaire for the patches.
- Error message and IPC logging level propagation improvements. Thanks to Thomas Gazagnaire for the help.
- Change pin build detection (#44). This changes opam build
instruction for packages. Substitute
"--installer" "true"by"--pinned" "%{pinned}%"in build instructions. The--installeroption is deprecated and has no effect.
-
Pkg.describe, allow multiple readme, change log and license files. The optional argumentsreadme,change_logandlicensebecomereadmes,change_logs,licenseswith the same default. When topkg needs to act on a change log (e.g.topkg log) or readme (e.g.topkg opam descr), it acts on the first element ofchange_logand/orreadmes. -
Fix
Conf.vcsdiscovery to only look for a git directory in the build directory (#42).
- Improve Windows support. Thanks to Andreas Hauptmann for the help.
First release.