B0_release
B0 software release helpers.
module Meta : sig ... end
Metadata keys for releases.
val version_of_pack : ?commit_ish:B00_vcs.commit_ish -> B0_pack.t -> (string, string) result
version_of_pack p
looks for a VCS in the scope directory of p
and gets its latest annotated tag reachable from commit_ish
(defaults to "HEAD"
) and drops an initial 'v'
or 'V'
. TODO. add a meta key to prevent v drop.
val src_archive_name_of_pack : B0_pack.t -> string
src_archive_name_of_meta m
is the value or Meta.src_archive_name
or the pack's basename if absent, unless this is "default" in which case the basename of the pack's scope is taken.
val src_archive_ext_of_pack : B0_pack.t -> string
src_archive_ext_of_pack p
is the value of Meta.src_archive_ext
of p
or ".tbz"
.
src_url_of_meta ~version p
derives a source URL for the pack p
. This looks up Meta.src_archive_url
p
and substitute the variables as follows:
%%ARCHIVE_NAME%%
with the value of src_archive_name_of_pack
.%%ARCHIVE_EXT%%
with the value of src_archive_name_of_ext
.%%VERSION%%
with the value of version
%%VERSION_NUM%%
with the value of version
with an initial v
or V
chopped.If Meta.src_archive_url
is absent, let %%HOMEPAGE%%
be the value of B0_meta.homepage
and %%REPO%%
be the value of B0_meta.repo
without the final .git
and initial git+
Then:
If the hostname of B0_meta.homepage
is github the following URL pattern is used:
%%REPO%%/releases/download/%%VERSION%%/\ %%ARCHIVE_NAME%%-%%VERSION_NUM%%%%ARCHIVE_EXT%%
Otherwise the following URL pattern is used:
%%HOMEPAGE%%/releases/\ %%ARCHIVE_NAME%%-%%VERSION_NUM%%%%ARCHIVE_EXT%%
val changes_file_of_pack : B0_pack.t -> (B00_std.Fpath.t option, string) result
changes_file_of_pack p
looks for a CHANGES.md
file located in the scope directory of p
.
val changes_latest_of_file : B00_std.Fpath.t -> ((string * string) option, string) result
changes_latest_of_file f
extracts the latest release notes as the first markdown section of file f
.
module Cmdlet : sig ... end
.release.*
Cmdlets