Permalink
Fetching contributors…
Cannot retrieve contributors at this time
122 lines (89 sloc) 6.15 KB

This page contains information relevant to maintainers of the log2timeline projects.

Mailing list

Maintainers mailing list: log2timeline-maintainers@googlegroups.com

Maintainer guidelines

Maintainer tools

If you intend to help maintain on plaso you'll also need to install the following tools:

Generating plaso test files

To generate pinfo_test.json.plaso and psort_test.json.plaso run the following script:

./config/tests/generate_test_files.sh

Generating API docs with Sphinx-doc

Plaso uses sphinx to generate API documentation. The plaso configuration uses the autodoc plugin for automatic documentation generation, and the napoleon plugin to read our “Google style” docstrings.

The configuration is stored here and the actual HTML documentation is built and stored with readthedocs.org, as described below. The merge_submit script, which is run by the maintainers, triggers a sphinx-apidoc run, which will generate reStructured text files which readthedocs will use to generate the HTML docs.

One little wrinkle in this pipeline is that to generate the API docs, readthedocs needs to import each python file. This will fail if it can't import all dependencies, and it's not possible to install native dependencies on readthedocs. The Sphinx configuration tries to take care of this by automatically mocking the dependencies in dependencies.py but it may be necessary on occasion to add a dependency explicitly to the sphinx config.

If you'd like to test the full HTML documentation build locally, not on readthedocs, cd to the docs directory and run make html.

Readthedocs.org

The plaso documentation on readthedocs.org is mirrored off the plaso wiki. The wiki git repo does not have the same webhooks as the plaso source git repo and thus we rely on a manual build trigger in the merge_submit script to refresh the documentation.

The build of the plaso-api documentation is triggered by github service integration with readthedocs.

Markdown compatibility

Define links as:

[description](URL)

Note that having a space between ] and ( breaks on readthedocs.

Generating plaso wiki pages

Checkout the plaso wiki pages:

git clone https://github.com/log2timeline/plaso.wiki.git

To generate the parser and plugins page:

PYTHONPATH=plaso plaso/tools/log2timeline.py --use-markdown --parsers list > plaso.wiki/Parsers-and-plugins.md

Commit and push the changes to the wiki pages.

Creating a packaged release

macOS packaged release

Use l2tdevtools to download the .dmg files:

PYTHONPATH=. ./tools/update.py --download-only --preset plaso
rm -f build/hachoir*.dmg

Change to the plaso source directory and create a distribution package by running:

./utils/prep_dist.sh
./config/macos/make_dist.sh

This will create a file named: plaso-${VERSION}_macos-10.11.dmg at the same level as the plaso source directory.

Updating the plaso's image on Docker's Hub to the latest version in PPA

We have a repository on Docker's hub : https://hub.docker.com/r/log2timeline/plaso.

cd config/docker/
docker build --no-cache -f plaso-from-ppa.dockerfile .
<... wait ... wait ...>
Successfully built f0edcb57611b

Your new image is f0edcb57611b. Make sure you've installed the version you want.

$ docker run -t -i  --entrypoint /bin/bash f0edcb57611b
root@a730e03d8386:/home/plaso# log2timeline.py --version
plaso - log2timeline version 1.5.1

Mark your new image with this version, and set it as being the latest.

docker tag d4c356705bd9 log2timeline/plaso:1.5.1
docker tag d4c356705bd9 log2timeline/plaso:latest

Then push the updates to Docker Hub.

docker login   # Ask log2timeline-maintainers@googlegroups.com for the credentials
docker push log2timeline/plaso:1.5.1
docker push log2timeline/plaso:latest