DISTRIBUTION

Distribution Guide for Encoding::Emacs

Steps to Publish to Raku Ecosystem

1. Prepare the Package āœ…

  • META6.json created with metadata

  • LICENSE file (Artistic 2.0)

  • README.md with usage examples

  • Tests passing (52 tests)

  • Clean git repository

2. Create GitHub Repository

# Initialize git if not already done
cd ~/code/raku/kaitai/encoding
git init
git add .
git commit -m "Initial release v0.1.0"

# Create GitHub repo (via web or gh CLI)
gh repo create encoding-emacs --public --source=. --remote=origin

# Push to GitHub
git push -u origin master

3. Install fez (Raku Ecosystem Uploader)

# Install fez
zef install fez

# Register with fez (one-time setup)
fez register

# This will:
# - Ask for your email
# - Send you a verification link
# - Set up your authentication

4. Upload to Ecosystem

# From the encoding directory
cd ~/code/raku/kaitai/encoding

# Check the package
fez checkbuild

# Upload to ecosystem (this makes it available via zef)
fez upload

# Or specify version explicitly
fez upload --ver=0.1.0

5. Verify Installation

# Test installation from ecosystem
zef install Encoding::Emacs

# Test it works
raku -e 'use Encoding::Emacs::Full::Cp850; say "āœ“ Installed!"'

Alternative: GitHub-only Distribution

If you prefer to start with GitHub-only (before publishing to zef ecosystem):

# Users can install directly from GitHub
zef install git://github.com/winfred-raj/encoding-emacs.git

# Or specify a tag/version
zef install "git://github.com/winfred-raj/encoding-emacs.git#v0.1.0"

Checklist Before Publishing

  • All tests pass: raku -I lib t/*.rakutest

  • META6.json is valid

  • README has clear usage examples

  • LICENSE file exists

  • GitHub repo is public

  • Git tags for versions: git tag v0.1.0 && git push --tags

  • CHANGELOG.md lists changes (optional but recommended)

Post-Publishing

Announce to Community

  1. Raku Blog - https://raku.org/community/

  2. Raku Reddit - https://www.reddit.com/r/rakulang/

  3. IRC/Discord - #raku channels

  4. Mailing List - [email protected]

Sample Announcement

Subject: [ANN] Encoding::Emacs v0.1.0 - 80+ legacy character encodings

I'm pleased to announce Encoding::Emacs, a module that provides 80+
legacy character encodings for Raku, auto-generated from Emacs MULE
definitions.

Supported encodings include:
- ISO-8859-2 through 8859-9, plus 14 and 15
- Windows codepages (CP1250-1258)
- DOS codepages (CP437, CP850-866, etc.)
- KOI8 variants (KOI8-R, KOI8-U, KOI8-T)
- IBM EBCDIC encodings
- And many more!

Installation:
    zef install Encoding::Emacs

Usage:
    use Encoding::Emacs::Full::Cp850;
    my $decoder = Encoding::Emacs::Full::Cp850.decoder;
    my $text = $decoder.consume($bytes);

GitHub: https://github.com/winfred-raj/encoding-emacs
Docs: https://github.com/winfred-raj/encoding-emacs#readme

Feedback welcome!

Version Updates

When releasing new versions:

# 1. Update version in META6.json
# 2. Update CHANGELOG.md
# 3. Commit changes
git add META6.json CHANGELOG.md
git commit -m "Bump version to 0.2.0"

# 4. Create git tag
git tag v0.2.0
git push && git push --tags

# 5. Upload to ecosystem
fez upload --ver=0.2.0

Resources

Encoding::Emacs v0.1.5.1

Auto-generated character encodings from Emacs MULE definitions - 80+ legacy encodings (ISO-8859, Windows CP, DOS CP, KOI8, EBCDIC, etc.)

Authors

  • Winfred Raj

License

Artistic-2.0

Dependencies

Test Dependencies

Provides

  • Encoding::Emacs::Full::Alternativnyj
  • Encoding::Emacs::Full::Control_1
  • Encoding::Emacs::Full::Cp00858
  • Encoding::Emacs::Full::Cp1125
  • Encoding::Emacs::Full::Cp1250
  • Encoding::Emacs::Full::Cp1251
  • Encoding::Emacs::Full::Cp1252
  • Encoding::Emacs::Full::Cp1253
  • Encoding::Emacs::Full::Cp1254
  • Encoding::Emacs::Full::Cp1255
  • Encoding::Emacs::Full::Cp1256
  • Encoding::Emacs::Full::Cp1257
  • Encoding::Emacs::Full::Cp1258
  • Encoding::Emacs::Full::Cp437
  • Encoding::Emacs::Full::Cp720
  • Encoding::Emacs::Full::Cp737
  • Encoding::Emacs::Full::Cp775
  • Encoding::Emacs::Full::Cp850
  • Encoding::Emacs::Full::Cp851
  • Encoding::Emacs::Full::Cp852
  • Encoding::Emacs::Full::Cp855
  • Encoding::Emacs::Full::Cp857
  • Encoding::Emacs::Full::Cp858
  • Encoding::Emacs::Full::Cp860
  • Encoding::Emacs::Full::Cp861
  • Encoding::Emacs::Full::Cp862
  • Encoding::Emacs::Full::Cp863
  • Encoding::Emacs::Full::Cp864
  • Encoding::Emacs::Full::Cp865
  • Encoding::Emacs::Full::Cp866
  • Encoding::Emacs::Full::Cp866u
  • Encoding::Emacs::Full::Cp869
  • Encoding::Emacs::Full::Cp874
  • Encoding::Emacs::Full::Georgian_Academy
  • Encoding::Emacs::Full::Georgian_Ps
  • Encoding::Emacs::Full::Hp_Roman8
  • Encoding::Emacs::Full::Ibm850
  • Encoding::Emacs::Full::Ibm866
  • Encoding::Emacs::Full::Iso_8859_14
  • Encoding::Emacs::Full::Iso_8859_15
  • Encoding::Emacs::Full::Iso_8859_2
  • Encoding::Emacs::Full::Iso_8859_3
  • Encoding::Emacs::Full::Iso_8859_4
  • Encoding::Emacs::Full::Iso_8859_5
  • Encoding::Emacs::Full::Iso_8859_6
  • Encoding::Emacs::Full::Iso_8859_7
  • Encoding::Emacs::Full::Iso_8859_8
  • Encoding::Emacs::Full::Iso_8859_9
  • Encoding::Emacs::Full::Japanese_Jisx0213_A
  • Encoding::Emacs::Full::Koi8
  • Encoding::Emacs::Full::Koi8_R
  • Encoding::Emacs::Full::Koi8_T
  • Encoding::Emacs::Full::Koi8_U
  • Encoding::Emacs::Full::Latin_Iso8859_1
  • Encoding::Emacs::Full::Mac_Roman
  • Encoding::Emacs::Full::Mik
  • Encoding::Emacs::Full::Next
  • Encoding::Emacs::Full::Ruscii
  • Encoding::Emacs::Full::Tcvn_5712
  • Encoding::Emacs::Full::Unicode_Bmp
  • Encoding::Emacs::Full::Viscii
  • Encoding::Emacs::Full::Vscii
  • Encoding::Emacs::Full::Vscii_2
  • Encoding::Emacs::Full::Windows_1250
  • Encoding::Emacs::Full::Windows_1251
  • Encoding::Emacs::Full::Windows_1252
  • Encoding::Emacs::Full::Windows_1253
  • Encoding::Emacs::Full::Windows_1254
  • Encoding::Emacs::Full::Windows_1255
  • Encoding::Emacs::Full::Windows_1256
  • Encoding::Emacs::Full::Windows_1257
  • Encoding::Emacs::Full::Windows_1258
  • Encoding::Emacs::Generator
  • Encoding::Emacs::MappingTable
  • Encoding::Emacs::Parser
  • Encoding::Emacs::Registry

Documentation

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.