mirror of
https://github.com/kirsle/kirsle.net
synced 2024-11-14 21:09:28 +00:00
74 lines
2.2 KiB
Markdown
74 lines
2.2 KiB
Markdown
|
# 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.
|