kirsle.net/www/wiki/Publishing-RiveScript-Modul...

74 lines
2.2 KiB
Markdown
Raw Normal View History

# 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: <https://python-packaging-user-guide.readthedocs.org/en/latest/distributing/#packaging-your-project>
## Build RPM
See also: <https://fedoraproject.org/wiki/Packaging:Python>
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.