B0_releaseB0 software release helpers.
module Meta : sig ... endMetadata keys for releases.
val version_of_pack : ?commit_ish:B00_vcs.commit_ish -> B0_pack.t -> (string, string) resultversion_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 -> stringsrc_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 -> stringsrc_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) resultchanges_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) resultchanges_latest_of_file f extracts the latest release notes as the first markdown section of file f.
module Cmdlet : sig ... end.release.* Cmdlets