Skip to main content

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<version> (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. Add +dev suffix to version number, commit and push.

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

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

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 <oskar@osd.se>

Metadata

Release files for jskom 0.26

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jskom 0.26
File Size Uploaded Provenance
jskom-0.26.tar.gz 686.3 kB Without provenance Details

Release files / jskom-0.26.tar.gz

Download URL jskom-0.26.tar.gz
Size 686.3 kB
Tags Source
SHA-256 checksum
How to use checksums
8a0928c55031dcedb1fada3b3c97c0afe628de7c8fd5962bb6fb7764d8785493
BLAKE2b-256 checksum
How to use checksums
6d939bf7b6d3135c60db5d67b34fa0eedfe362394dfcaccf4f7b301256653197
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.8.2

Security for jskom 0.26

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page