jskom is a web based LysKOM client written in Javascript. It comes with a Python web app for configuring and serving the Javascript files.
jskom uses httpkom for communication with the LysKOM server.
The source code can be found at: https://github.com/osks/jskom
Packages are published on PyPI: https://pypi.org/project/jskom/
Docker images are published on Docker Hub: https://hub.docker.com/r/osks/jskom
httpkom: https://github.com/osks/httpkom
For required Python packages, see requirements.txt. Install them with:
$ pip install -r requirements.txt
For running the tests from the Makefile in a console, you need PhantomJS. You can still run the tests in a regular browser if you want. (If you use Homebrew on OS X, you can install it with 'brew install phantomjs'.)
For information: The jskom tests uses the Mocha framework (http://visionmedia.github.com/mocha/) and mocha-phantomjs (http://metaskills.net/mocha-phantomjs/). Both are included with jskom. For mocha-phantomjs to work, mocha.js had to be patched to use a real diff library:
require.register("browser/diff.js", function(module, exports, require){ module.exports = JsDiff; // this row was added });
Default port is 5000.
$ make run-debug-server
Simple example:
$ docker run -ti --name=jskom --net=host osks/jskom
More complete:
$ docker run -d --name=jskom --net=host --restart=always \ -v /path/to/my-httpkom-config.cfg:/httpkom.cfg \ -v /path/to/my-jskom-config.cfg:/jskom.cfg \ osks/jskom:dev
docker build -f Dockerfile.dev -t osks/jskom:dev --no-cache . docker login # username and access token for password docker push osks/jskom:dev
On master:
Update and check CHANGELOG.md.
Increment version number and remove
+dev
suffix IN BOTHsetup.py
ANDjskom/version.py
!Test manually by using jskom.
Commit, push.
Tag (annotated) with
v<version>
(example:v0.1
) and push the tag:git tag -a v0.1 -m "Version 0.1" git push origin v0.1
Build PyPI dist:
make dist
Push to Test PyPI:
twine upload --repository testpypi dist/*
and check https://test.pypi.org/project/jskom/ .Push to PyPI:
twine upload dist/*
and check https://pypi.org/project/jskom/ .- Github release: Go to https://github.com/osks/jskom/releases
and draft a new release. Select tag and set title to "Version <version>", and then publish the release.
Docker image:
docker build -f Dockerfile -t osks/jskom:v<version> --no-cache . docker login # username and access token for password docker push osks/jskom:v<version> docker tag osks/jskom:v<version> osks/jskom:latest docker push osks/jskom:latest
Add
+dev
suffix to version number, commit and push.
Install and update release tools with:
pip install --upgrade setuptools wheel pip twine
Twine is used for pushing the built dist to PyPI. The examples in the
release process depends on a .pypirc
file with config for the pypi
and testpypi repositories.
Example of .pypirc
:
[pypi] username = __token__ password = pypi-... [testpypi] repository = https://test.pypi.org/legacy/ username = __token__ password = pypi-...
Oskar Skoog <[email protected]>
Copyright (c) 2012-2023 Oskar Skoog. jskom is provided under the MIT license. See the included LICENSE.txt file for specifics.