# Publishing RiveScript Modules My personal notes on how to distribute releases of RiveScript to various language module repositories. # Python If this is the first time publishing from a new computer, create `~/.pypirc` with your PyPI credentials: ``` [distutils] index-servers=pypi [pypi] repository = https://pypi.python.org/pypi username = $USERNAME password = $PASSWORD ``` Make sure everything's ready to go (version numbers incremented, documentation rebuilt, etc.) and run this command to create all the distributable items: ```bash # Install the requirements to get the bdist_wheel command $ pip install -r requirements.txt $ python setup.py sdist bdist_wheel ``` This generates files in the `dist/` folder: * `sdist` creates the source tarball * `bdist_wheel` creates a portable pre-built wheel file (the new "egg") * `bdist_rpm` creates an RPM (not necessary to upload this to PyPI) * `bdist_wininst` creates a Win32 installer (not necessary to upload this to PyPI) And to upload to PyPI: ```bash $ pip install twine $ twine upload dist/* ``` See also: ## Build RPM See also: To build the RPM for Fedora: ```bash $ rpmbuild -ba python-rivescript.spec ``` # JavaScript * Prepare it for NPM distribution: 1. Build distributable (compiled JS) files: `grunt dist` 2. Test an installation from a different directory: `npm install ../rivescript-js` and make sure it works. 3. From the rivescript-js folder, `npm login` if it's the first time on a new PC and `npm publish` to publish. * Create release tarballs for GitHub binary distribution: 1. Build distributable files: `grunt dist` 2. Remove cruft: `rm -rf node_modules` 3. Go up a directory to create zip/tar files * zip -r rivescript-js-1.1.2.zip rivescript-js -x '*.git*' * tar -czvf rivescript-js-1.1.2.tar.gz rivescript-js --exclude .git See also: [npm developers](https://docs.npmjs.com/misc/developers) # Perl 1. `perl Makefile.PL` 2. `make` 3. `make dist` Upload resulting tarball to [PAUSE](http://pause.perl.org/) for indexing on CPAN.