|
| 1 | +[](https://metacpan.org/pod/CAD::Mesh3D) |
| 2 | +[](http://matrix.cpantesters.org/?dist=CAD-Mesh3D) |
| 3 | +[](https://github.com/pryrt/CAD-Mesh3D/releases) |
| 4 | +[](https://github.com/pryrt/CAD-Mesh3D/issues) |
| 5 | +[](https://ci.appveyor.com/project/pryrt/CAD-Mesh3D) |
| 6 | + |
| 7 | +# Releasing CAD::Mesh3D |
| 8 | + |
| 9 | +This describes some of my methodology for releasing a distribution. To help with testing, I've integrated the [GitHub repo](https://github.com/pryrt/CAD-Mesh3D/) |
| 10 | +with [AppVeyor CI](https://ci.appveyor.com/project/pryrt/cad-mesh3d) and [Travis CI](https://travis-ci.org/github/pryrt/CAD-Mesh3D). |
| 11 | + |
| 12 | +## My Methodology |
| 13 | + |
| 14 | +I use a local svn client to checkout the GitHub repo. All these things can be done with a git client, but the terminology changes, and I cease being comfortable. |
| 15 | + |
| 16 | +* **Development:** |
| 17 | + |
| 18 | + * **GitHub:** create a branch |
| 19 | + |
| 20 | + * **svn:** switch from trunk to branch |
| 21 | + |
| 22 | + * `prove -l t` for normal tests, `prove -l xt` for author tests |
| 23 | + * use `berrybrew exec` or `perlbrew exec` on those `prove`s to get a wider suite |
| 24 | + * every `svn commit` to the GitHub repo should trigger AppVeyor build suite |
| 25 | + |
| 26 | +* **Release:** |
| 27 | + |
| 28 | + * Verify perl v5.10: that isn't covered in appveyor |
| 29 | + |
| 30 | + * Verify dos8.3-style shortnames: # shortname cannot be auto-tested (easily?) in appveyor |
| 31 | + * dir .. /X # list the shortname for parent directory |
| 32 | + * cd ..\short8.3 # force cmd.exe to use shortname notation |
| 33 | + * `prove -l t` # ensure it still works in shortname mode |
| 34 | + |
| 35 | + * **Verify Documentation:** |
| 36 | + * make sure versioning is correct |
| 37 | + * verify README.md is up-to-date |
| 38 | + * `dmake README.md` or `gmake README.md` |
| 39 | + * or `dmake docs` or `gmake docs` |
| 40 | + * verify CHANGES (history) |
| 41 | + |
| 42 | + * **Build Distribution** |
| 43 | + |
| 44 | + gmake veryclean # clear out all the extra junk |
| 45 | + perl Makefile.PL # create a new makefile |
| 46 | + gmake # copy the library to ./blib/lib... |
| 47 | + gmake distcheck # check for new or removed files |
| 48 | + gmake manifest # if this steps adds or deletes incorrectly, please fix MANIFEST.SKIP ; MANIFEST is auto-generated |
| 49 | + gmake disttest # optional, if you want to verify that make test will work for the CPAN audience |
| 50 | + set MM_SIGN_DIST=1 # enable signatures for build |
| 51 | + set TEST_SIGNATURE=1 # verify signatures during `disttest` |
| 52 | + perl Makefile.PL && gmake distauthtest # recreate Makefile and re-run distribution test with signing & test-signature turned on |
| 53 | + set TEST_SIGNATURE= # clear signature verification during `disttest` |
| 54 | + gmake dist # actually make the tarball |
| 55 | + gmake veryclean # clean out this directory |
| 56 | + set MM_SIGN_DIST= # clear signatures after build |
| 57 | + |
| 58 | + * **svn:** final commit of the development branch |
| 59 | + |
| 60 | + * **svn:** switch back to trunk (master) repo |
| 61 | + |
| 62 | + * **GitHub:** make a pull request to bring the branch back into the trunk |
| 63 | + * This should trigger AppVeyor approval for the pull request |
| 64 | + * Once AppVeyor approves, need to approve the pull request, then the branch will be merged back into the trunk |
| 65 | + * If that branch is truly done, delete the branch using the pull-request page (wait until AFTER `svn switch`, otherwise `svn switch` will fail) |
| 66 | + |
| 67 | + * **GitHub:** [create a new release](https://help.github.com/articles/creating-releases/): |
| 68 | + * Releases > Releases > Draft a New Release |
| 69 | + * tag name = `v#.###` |
| 70 | + * release title = `v#.###` |
| 71 | + |
| 72 | + * **PAUSE:** [upload distribution tarball to CPAN/PAUSE](https://pause.perl.org/pause/authenquery?ACTION=add_uri) by browsing to the file on my computer. |
| 73 | + * Watch <https://metacpan.org/author/PETERCJ> and <http://search.cpan.org/~petercj/> for when it updates |
| 74 | + * Watch CPAN Testers |
| 75 | + |
| 76 | + * **GitHub:** Clear out any [issues](https://github.com/pryrt/Win32-Mechanize-NotepadPlusPlus/issues/) that were resolved by this release |
| 77 | + |
0 commit comments