YANKEE(1) YANKEE(1) NNAAMMEE yyaannkkeeee - Easy release management with YAML changelogs SSYYNNOOPPSSIISS yankee [] yankee --help DDEESSCCRRIIPPTTIIOONN The file CChhaannggeelloogg..yyaammll is the single source of information about your releases. It should be an object with one key per release and an optional mmaasstteerr:: key at the top. Here^as an example: master: new features: - The cool new flag `--verbose`. 2.0.1: date: 1992-02-09 fixed bugs: - Got rid of a nasty IO bug. - Improved the docs. 2.0.0: date: 1982-03-15 breaking changes: - API redesign. See the readme for details. 1.0.0: date: 1970-01-01 note: Initial release. When you call yyaannkkeeee, we^all determine what version number comes next and update the file accordingly. We^all replace mmaasstteerr:: with the new version and add a ddaattee:: property with the current day right below that. If the mmaasstteerr:: object contains the key bbrreeaakkiinngg cchhaannggeess::, we^all make it a major release (X.y.z). If it contains the key nneeww ffeeaattuurreess::, we^all make a minor bump (x.Y.z). Otherwise, make sure your mmaasstteerr:: changelog has the key ffiixxeedd bbuuggss:: ^a we^all release it as a patch (x.y.Z). The version number against which we^all be bumping is the first key in your CChhaannggeelloogg..yyaammll except mmaasstteerr::. If there^as no other key, we^all always tag the release as 1.0.0. If you call yyaannkkeeee without any options, we^all only output the version number, so that it^as easy for you to process with scripts. OOPPTTIIOONNSS [[ppaatthh]] The path to your project directory. Should contain a CChhaannggeelloogg..yyaammll. Default: $$((ppwwdd)). --nn,, ----nnppmm Attempt to update the vveerrssiioonn field in ppaacckkaaggee..jjssoonn and nnppmm--sshhrriinnkkwwrraapp..jjssoonn. --cc,, ----ccoommmmiitt Commit changes. The commit message will be the raw version number. --tt,, ----ttaagg Tag the commit with an annotated tag. The tag name will be the raw ver- sion number preceeded with a ^av^a. Implies ----ccoommmmiitt. --hh,, ----hheellpp You^are looking at it. EEXXAAMMPPLLEE Here a simple example using ccaatt and here docs _h_t_t_p_s_:_/_/_e_n_._w_i_k_i_p_e_d_i_a_._o_r_g_/_w_i_k_i_/_H_e_r_e___d_o_c_u_m_e_n_t_#_U_n_i_x___s_h_e_l_l_s. When creating your package, you start off with a simple changelog: $ cat << ^a^a^a > Changelog.yaml master: note: Initial release. ^a^a^a When you^are ready for a 1.0.0 release, just call yyaannkkeeee: $ yankee 1.0.0 $ cat Changelog.yaml 1.0.0: date: 2016-05-20 note: Initial release. Working on new stuff, update the changelog accordingly: $ cat << ^a^a^a > Changelog.yaml master: new features: - Cool new stuff! $(cat Changelog.yaml) ^a^a^a When ready for a release, yyaannkkeeee will figure out what the release num- ber should be: $ yankee 1.1.0 $ cat Changelog.yaml 1.1.0: date: 2016-05-20 new features: - Cool new stuff! 1.0.0: date: 2016-05-20 note: Initial release. LLIICCEENNSSEE MIT _h_t_t_p_s_:_/_/_g_i_t_h_u_b_._c_o_m_/_s_t_u_d_i_o_-_b_1_2_/_y_a_n_k_e_e_/_L_i_c_e_n_s_e_._m_d ^A(C) Studio B12 _h_t_t_p_:_/_/_s_t_u_d_i_o_-_b_1_2_._d_e v1.0.8 October 2017 YANKEE(1)