Skip to main content
Download Build Status Docs

slacklog – Convert Slackware Changelog to various formats

slacklog provides programs and a library to convert a Slackware ChangeLogs into other formats. Currently, RSS, Atom, JSON, and PyBlosxom formats are supported.

Basic usage

Typical usage of the program looks like this:

$ slacklog2rss --changelog slackware-current/ChangeLog.txt \
               --encoding iso8859-1 \
               --out ~/public_html/slackware-current.rss \
               --slackware "Slackware current" \
               --rssLink "http://linuxbox.fi/~vmj/slackware-current.rss" \
               --description "Slackware current activity" \
               --managingEditor "vmj@linuxbox.fi (Mikko Värri)" \
               --webMaster "vmj@linuxbox.fi (Mikko Värri)"

The included Python library provides the ability to make custom formats easily:

#!/usr/bin/env python
from __future__ import print_function
import codecs
import locale
from slacklog.parsers import SlackLogParser

def read(file):
    '''Return file contents as Unicode.'''
    return codecs.open(file, 'r', 'iso8859-1').read()

def write(str):
    '''Print out in preferred encoding.'''
    print(str.encode(locale.getpreferredencoding()))

# Parse the ChangeLog
log = SlackLogParser().parse(read('ChangeLog.txt'))

# Just an example of walking the log tree and print it out
for entry in log.entries:
    write(u'[%s] %s\n' % (entry.timestamp.isoformat(), entry.description))
    for pkg in entry.pkgs:
        write(u'%s:%s' % (pkg.pkg, pkg.description))

Note that slacklog package deals solely in Unicode; parser expects to be given Unicode input and formatters generate Unicode data.

Requirements

In addition to Python, python-dateutil is required.

Python versions 2.7 and 3.4 - 3.7 are tested, together with python-dateutil versions 2.1 - 2.8.

Installation

Use either pip install slacklog or download the source archive and use python setup.py install.

The source code is available at Python Package Index (PyPI) or, if you want the unreleased version, from Github git repository.

Trying it in Docker

Here’s one way to hack on this inside a container:

$ docker run --rm -it -v $(pwd):/slacklog -w /slacklog python:3.7-alpine3.8 sh
# apk add --no-cache curl
# pip install python-dateutil==2.7.3
# python setup.py install
# sh examples/fetch-changelogs.sh
# sh examples/update-slacklog-rss.sh

Obviously, you need Docker installed and working, and I’m assuming you run those commands in the git clone.

Authors

Original author and current maintainer is Mikko Värri (vmj@linuxbox.fi).

License

slacklog is Free Software, licensed under GNU General Public License (GPL), version 3 or later. See LICENSE.txt file for details.

Release history

Version 0.9.6 (2019-03-14)

Fixed a bug in text formatter when the original timestamp is in 12-hour format.

Added Python 3.7 and dateutil 2.8 into test matrix.

Deprecated PyBlosxom formatter.

Version 0.9.5 (2018-10-02)

This release adds the JSON formatter.

As for dependencies, support for Python 3.3 was dropped since it had it’s end-of-life a year ago. Also, dateutil 2.7 is tested to be good.

Version 0.9.4 (2017-09-03)

The parser subclass can now overwrite the generation of entry identifier and/or checksum.

Other than that, tests were updated to use python-dateutil 2.6.1, and documentation was fixed.

Version 0.9.3 (2017-08-23)

This release is mainly bug fixing. RSS and atom formatters learnt to take the feed build time (optionally) as an argument, which makes them more testable.

Version 0.9.2 (2017-05-25)

This release is backwards incompatible with the previous releases: SlackLogParser and SlackLogFormatter (and subclasses) have to be instantiated, and instead of using class methods, instance methods and properties have to be used.

Version 0.9.1 (2017-05-24)

This release adds checksum, identifier, and parent fields to SlackLogEntry. Also, a couple of bugs with recognizing package names was resolved.

Verions 0.9.0 (2017-04-05)

After almost six years with only maintenance releases, it’s time to move to beta.

This release switches from distutils to setuptools, and contains some refactoring to scripts (pure refactoring, no changes in the CLI).

Version 0.0.9 (2017-04-04)

This release does not add any new functionality.

The dependencies were updated: Python 2.7, 3.3 - 3.6, and python-dateutil 2.1 - 2.6. Support for Python 2.6 was dropped, not because it doesn’t work but because Python core team doesn’t support it.

The code was formatted according to PEP-8, and the example script was updated to include Slackware versions 14.0 and 14.2.

Version 0.0.8 (2014-09-28)

This release does not add any new functionality, but includes support for Python 3.

In addition, Slackware{,64} 14.1 was added to the example script, and Travis CI and ReadTheDocs were integrated (see the links at the top of the README).

Version 0.0.7 (2011-06-16)

This release adds Atom feed formatter, and fixes compatibility issue with recent ChangeLog.txt format change which caused empty entries to be generated. Also, Slackware{,64} 13.37 was added to the example script.

Version 0.0.6 (2011-03-18)

This release adds documentation.

Version 0.0.5 (2011-03-17)

This release adds the example script in source distribution, too.

Version 0.0.4 (2011-03-17)

This release contains better error handling, better compatibility with more feed readers, better support for timezones other that UTC, and an example script suitable for a cron job to update RSS feeds.

Version 0.0.3 (2011-02-21)

Added PyBlosxom formatter and fixed a couple of issues.

Version 0.0.2 (2011-01-29)

Packaging cleanups.

Version 0.0.1 (2011-01-28)

Initial release.

Metadata

Release files for slacklog 0.9.6

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

Source distribution (sdist)

Source distribution for slacklog 0.9.6
File Size Uploaded Provenance
slacklog-0.9.6.tar.gz 225.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for slacklog 0.9.6
File Interpreter ABI Platform
slacklog-0.9.6-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 254.2 kB

Release files / slacklog-0.9.6.tar.gz

Download URL slacklog-0.9.6.tar.gz
Size 225.0 kB
Tags Source
SHA-256 checksum
How to use checksums
9c3731a6a77cf038fcdcf6e59c4ac79d78abdf7df21ee4d1fc2719dd68ed8b97
BLAKE2b-256 checksum
How to use checksums
c2f6ace886f49cba8f4483eb16c3b26bddccbbfdb3f4c042213339369a2e36ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

Release files / slacklog-0.9.6-py2.py3-none-any.whl

Download URL slacklog-0.9.6-py2.py3-none-any.whl
Size 29.2 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
60f2948cb5e45d76f69f3fc3b34669386a3d0a5344b16b36acd035053884f8f8
BLAKE2b-256 checksum
How to use checksums
71febeae1b141529635a31c0aed3c28e162edabee6a02921e2ebdbecb951ea17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

Security for slacklog 0.9.6

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.

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