From 5c086bc52fa3a226bcf706b1f420a5d98ea377dd Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Wed, 15 Dec 2021 10:45:58 +0100 Subject: Redo most of the blog in Hugo Missing posts will have to be added later --- ...ing-app-assixt-to-improve-module-development.md | 244 --------------------- 1 file changed, 244 deletions(-) delete mode 100644 src/_slides/perl6-using-app-assixt-to-improve-module-development.md (limited to 'src/_slides/perl6-using-app-assixt-to-improve-module-development.md') diff --git a/src/_slides/perl6-using-app-assixt-to-improve-module-development.md b/src/_slides/perl6-using-app-assixt-to-improve-module-development.md deleted file mode 100644 index b16c979..0000000 --- a/src/_slides/perl6-using-app-assixt-to-improve-module-development.md +++ /dev/null @@ -1,244 +0,0 @@ ---- -title: "Perl6: Using `App::Assixt` to improve module development" -event: 14th Dutch Perl Workshop -date: 2018-07-07 ---- - -# `App::Assixt` -## Improving module development - ---- - -# About me - -- Patrick Spek (`TYIL`) -- https://www.tyil.nl -- @tyil@mastodon.social - -note: - I have about 10 Perl 6 modules available on CPAN right now. `Config` and - parser modules, `IRC::Client` plugins, `Hash::Merge`, `Dist::Helper` and - `App::Assixt`. - ---- - -# Why? - -- Manually updating JSON is annoying -- Wanted to ease development -- Wanted easier way to distribute - -note: - It's my 2nd project in Perl 6, following `Config`. - ---- - -# How? - -- Uses `Dist::Helper` -- Updates `META6.json` -- Creates skeleton files - -note: - `Dist::Helper` is the base that deals with the actual interaction with the - modules. `App::Assixt` is a CLI frontend with some nice extras to make it - usable. - ---- - -# How do I get it? - -``` -$ zef install App::Assixt -``` - -note: - `App::Assixt` is easily available through `CPAN`, and `zef` is able to - install it cleanly nowadays. - ---- - -# Using it - -``` -$ assixt help -``` - -``` -$ p6man assixt -``` - -note: - - p6man is shipped with `Pod::To::Pager`, still in development! - ---- - -# Creating a new project - -## Manual -``` -$ mkdir my-new-perl6-project -$ cp my-old-project/META6.json my-new-perl6-project/. -$ $EDITOR my-new-perl6-project/META6.json -``` - -## `assixt` -``` -$ assixt new --name=my-new-perl6-project -``` - -note: - - `assixt new` can also be done without arguments, it will ask for a name - then - - additional questions will also be asked to fill out the META6.json - - `assixt` will add gitlab-ci, travis configuration - - default changelog - - gitignore - ---- - -# Adding files - -## Manual -``` -$ mkdir -p lib/App/Local -$ touch lib/App/Local/NewClass.pm6 -$ $EDITOR META6.json -``` - -## `assixt` -``` -$ assixt touch class App::Local::NewClass -``` - -- Classes -- Tests -- Unit modules - ---- - -# Adding a dependency - -## Manual -``` -$ $EDITOR META6.json -$ zef install Config -``` - -## `assixt` -``` -$ assixt depend Config -``` - -note: - `--no-install` skips the step where `zef` tries to install the module. - ---- - -# Bumping the version - -## Manual -``` -$ $EDITOR META6.json -``` - -## `assixt` -``` -$ assixt bump -``` - -note: - - `bump` asks for additional user input to decide whether to bump the patch, - minor or major level. - - In a next release, will also update `=VERSION` in pod, and CHANGELOG - releases. - ---- - -# Create a new dist - -## Manual -``` -$ tar czf My-Dist-0.1.2.tar.gz --exclude-vcs-ignores [--exclude...] . -$ mv !:2 ~/.local/dists/. -``` - -## `assixt` -``` -$ assixt dist -``` - ---- - -# Uploading to CPAN - -## Manual -Through your favourite webbrowser - -## `assixt` -``` -$ assixt upload ~/.local/var/assixt/dists/Dist-Helper-0.19.0.tar.gz -``` - -note: - After starting development and testing of `assixt`, I eventually found `mi6`, - but I stick to `assixt` as it can do much more. - ---- - -# `push` shorthand - -``` -$ assixt push -``` - -- Bump -- Dist -- Upload - -note: - Does a `bump`, `dist` and `upload`, one after another. - ---- - -# Workflow - -``` -$ assixt new Local::App -$ cd perl6-local-app -$ assixt depend Config -$ assixt touch class Local::App::Foo -$ $EDITOR -$ assixt push -``` - -note: - Creates a new module directory, make the module depend on `Config`, create a - class named `Local::App::Foo` and push the module to CPAN. - ---- - -# Future plans - ---- - -## QA check -- Will perform QA checks to improve module quality -- Based on `Release::Checklist` by [Tux] -- Work In Progress on Github - ---- - -## Other ideas -- `meta`: To update misc dist info, such as the authors -- `sync-meta`: To synchronize a `META6.json` from an existing module -- Improve `new`: Also generate a default `README.pod6` - -note: - `sync-meta` is intended to also create a new `META6.json` if none exists - yet. - ---- - -# Questions - -- cgit v1.1