An open API service indexing awesome lists of open source software.

https://github.com/osks/jskom

jskom is a web based LysKOM client, written in Javascript. It uses httpkom for communication with the LysKOM server.
https://github.com/osks/jskom

Last synced: 6 months ago
JSON representation

jskom is a web based LysKOM client, written in Javascript. It uses httpkom for communication with the LysKOM server.

Awesome Lists containing this project

README

          

jskom
=====

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

Dependencies
------------

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
});

Running
-------

Default port is 5000.

Development
***********

::

$ make run-debug-server

Docker
******

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

Development
-----------

Building a dev docker image
***************************

::

docker build -f Dockerfile.dev -t osks/jskom:dev --no-cache .
docker login # username and access token for password
docker push osks/jskom:dev

Preparing a release
*******************

On master:

1. Update and check CHANGELOG.md.

2. Increment version number and remove ``+dev`` suffix
IN BOTH ``setup.py`` AND ``jskom/version.py``!

3. Test manually by using jskom.

4. Commit, push.

5. Tag (annotated) with ``v`` (example: ``v0.1``) and push the tag::

git tag -a v0.1 -m "Version 0.1"
git push origin v0.1

6. Build PyPI dist: ``make dist``

7. Push to Test PyPI: ``twine upload --repository testpypi dist/*`` and check
https://test.pypi.org/project/jskom/ .

8. Push to PyPI: ``twine upload dist/*`` and check
https://pypi.org/project/jskom/ .

9. Github release: Go to https://github.com/osks/jskom/releases
and draft a new release. Select tag and set title to "Version
", and then publish the release.

10. Docker image::

docker build -f Dockerfile -t osks/jskom:v --no-cache .
docker login # username and access token for password
docker push osks/jskom:v
docker tag osks/jskom:v osks/jskom:latest
docker push osks/jskom:latest

11. Add ``+dev`` suffix to version number, commit and push.

Tools
*****

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-...

Authors
-------

Oskar Skoog

Copyright and license
---------------------

Copyright (c) 2012-2023 Oskar Skoog. jskom is provided under the MIT
license. See the included LICENSE.txt file for specifics.