Commit graph

519 commits

Author SHA1 Message Date
Joshua Lock
537a0198b4
Merge pull request #1743 from lukpueh/rm-metadata-api-bump_expiration
Metadata API: Remove Signed.bump_expiration() method
2022-01-05 12:08:24 +00:00
Lukas Puehringer
d3ef746f7c doc: fix broken links in 1.0.0-ANNOUNCEMENT.md
The recent move of 1.0.0-ANNOUNCEMENT.md (#1732) broke the
relative links in the document.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2021-12-22 12:28:25 +01:00
Lukas Puehringer
b754c37533 doc: display inherited members on RTD
Update sphinx/rtd conf to display inherited members. This is
enabled specifically for the newly added `expires` property,
which has a useful code snippet in the docstring.

We don't display
- them on the tuf.api automodule overview page (avoid duplicates)
- members inherited from the built-in Exception class

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2021-12-22 11:40:46 +01:00
Kairo de Araujo
7dc5940827 update CONTRIBUTORS.rst related to tox
The mention of testing using multiple Python versions by default was
removed.

Signed-off-by: Kairo de Araujo <kdearaujo@vmware.com>
2021-12-16 10:04:58 +01:00
Lukas Puehringer
97d5395e79 Prepare v0.20.0
This will be the final release of python-tuf that includes the
legacy implementation code. Please see the [*1.0.0
announcement*](1.0.0-ANNOUNCEMENT.md) page for more details about
the next release and the deprecation of the legacy implementation,
including migration instructions.

Co-authored-by: Jussi Kukkonen <jkukkonen@vmware.com>
Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-12-15 16:36:50 +02:00
Jussi Kukkonen
89b532db79 Move 1.0.0 announcement to docs
Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-12-15 15:54:45 +02:00
Martin Vrachev
22fe1e69e4 Rename old test files by adding old suffix
Rename test files testing the old code by adding an "old" suffix.
This is done, so we can easily exclude them from linting.

Signed-off-by: Martin Vrachev <mvrachev@vmware.com>
2021-12-09 16:44:25 +02:00
lukpueh
b2d8572598
Merge pull request #1693 from jku/add-repo-lib-design-adr
ADR: Add New repository library design
2021-12-08 10:28:11 +01:00
Jussi Kukkonen
f6ede42eae Fix issues from review
In addition to multiple smaller review fixes:
* Explain how the proposed library is minimal: more specific
  functionality may be added as we get more experience
* Explain what a concrete Repository implementation must implement
  (details are obviously subject to change but this is what the
  current prototype requires)

Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-12-07 14:01:25 +02:00
Martin Vrachev
ed8a06bcb3 Move part of isort options in pyproject.toml
We are using 4 linters: black, isort, pylint and mypy.
It's good if we use one file as a source for truth for all linter
configurations.

I tried multiple ways to use the src_path option,
so we can just call isort without pointing out the target folders, but I was not
successful.
I tried running isort with "isort --settings-path=pyproject.toml"
I got the error:
"Error: arguments passed in without any paths or content."

Additionally, I saw one project with source configuration https://github.com/Pylons/pyramid/blob/master/pyproject.toml,
but they had to give explicit folders too 8061fce297/tox.ini (L26)
and 8061fce297/tox.ini (L66)

It was a similar situation with "check" and "diff".
In the documentation it's said that for both check and diff are not
supported in configuration files.
See:
- https://pycqa.github.io/isort/docs/configuration/options.html#check
- https://pycqa.github.io/isort/docs/configuration/options.html#show-diff

Additionally, in two issues it was confirmed that in integration tests
we should use --check and --diff the way we did until now.

As a result, I moved part of the configuration options for isort inside
pyproject.toml without the actual directories that need to be linted
and "check" and "diff" options.

Signed-off-by: Martin Vrachev <mvrachev@vmware.com>
2021-12-01 16:28:15 +02:00
Martin Vrachev
4597761adb Move black configuration in pyproject.toml
We are using 4 linters: black, isort, pylint and mypy.
It's good if we use one file as a source for truth for all linter
configurations.

As a first step move black options in pyproject.toml.
I tried multiple ways to use the include option,
so we can just call black --config=pyproject.toml, but I was not
successful. Then I found this comment https://github.com/psf/black/issues/861#issuecomment-680411125
explaining that the path argument is mandatory.
As a result, I will move all configuration options for black inside
pyproject.toml without the actual directories that need to be linted.

Signed-off-by: Martin Vrachev <mvrachev@vmware.com>
2021-12-01 16:28:13 +02:00
Jussi Kukkonen
bcab2e96b0 Include the design doc in repo
* Also add some new diagrams in the design doc
* Fix some issues in ADR

Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-12-01 10:32:46 +02:00
Jussi Kukkonen
0a453e2fcc docs: Remove ROADMAP
This file is out of date to the point of being obsolete. An updated
ROADMAP document would be warmly welcome but an out of date roadmap
is worse than nothing.

Fixes #1525

Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-11-30 10:22:17 +02:00
Jussi Kukkonen
845f3070d0 ADR: Add New repository library design
Document the decision to build a repository library on top of Metadata
API.

Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-11-24 10:57:16 +02:00
Joshua Lock
ac0ea24ca9 Remove references to setup.py
We now use a static setup.cfg instead, update __init__.py and
docs/RELEASE.md to point there.

Signed-off-by: Joshua Lock <jlock@vmware.com>
2021-10-21 13:30:46 +01:00
Joshua Lock
9e113d6135 docs/RELEASE: use build for building dists
This is the PyPA recommend tool for building Python packages:
https://packaging.python.org/guides/distributing-packages-using-setuptools/

Furthermore, direct invocation of setup.py is long ago deprecated:
https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html

Signed-off-by: Joshua Lock <jlock@vmware.com>
2021-10-21 13:28:07 +01:00
Jussi Kukkonen
f2f7f9df53 Release 0.19.0
For users of legacy client (tuf/client/) this is purely a security fix
release with no API or functionality changes. For ngclient and Metadata
API, some API changes are included.

All users are advised to upgrade.

Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-10-19 17:17:49 +03:00
Jussi Kukkonen
a77c0831e7 docs: rename "helpers" to "supporting classes"
Also add a summary to the page -- unfortunately getting a standard
TOC would require creating a rst page for each class.

Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-09-23 17:52:55 +03:00
Jussi Kukkonen
424cc3282b docs: Include the Serialization interfaces
Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-09-23 17:52:55 +03:00
Jussi Kukkonen
21ce5e2915 Hide to_dict()/from_dict()
These are helpers for serialization implementers, not useful for
Metadata API users.

Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-09-23 17:52:55 +03:00
Jussi Kukkonen
217bd9dbc7 Separate API documentation pages
This makes the individual pages easier to read.

Use some autodoc configuration so we can have less config
in the automodule/autoclass declarations.

Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-09-23 17:52:52 +03:00
Jussi Kukkonen
868afda420 docs: Change object attribute doc style
Situation before
* constructor args are not documented
* object attributes are documented
* sphinx cannot show object attribute type annotations
* attribute docs take a lot of vertical space

Now:
* constructor args are documented
* sphinx can show annotated types of constructor args
* class docstring now explains the attributes are the same as
  constructor args (and attributes are not explicitly documented)

Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-09-23 17:51:46 +03:00
Jussi Kukkonen
5714885df9
Merge pull request #1486 from MVrachev/change-adr8
ADR 8: change "Decision outcome"
2021-09-08 13:05:14 +03:00
Joshua Lock
3a87b2bcd1 Prepare v0.18.1
The v0.18.0 release was made with the changes from #1566, resulting in
a release with sources which don't match the git tag. Rectify this with
a brown bag point release.

Signed-off-by: Joshua Lock <jlock@vmware.com>
2021-09-06 13:55:54 +01:00
Joshua Lock
60925f0c0a Update release docs not to mention Python 2
Signed-off-by: Joshua Lock <jlock@vmware.com>
2021-09-06 13:29:51 +01:00
Jussi Kukkonen
0ec8d3ce86 Release preparations for 0.18
Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-09-06 14:37:25 +03:00
Joshua Lock
3dc5594242 Update links to account for repository rename
We have renamed the repository from tuf->python-tuf

Signed-off-by: Joshua Lock <jlock@vmware.com>
2021-09-01 11:15:33 +01:00
Joshua Lock
4f8da50424 Add Teodora to maintainers
Signed-off-by: Joshua Lock <jlock@vmware.com>
2021-08-31 09:57:52 +01:00
Joshua Lock
3877e24346
ADR-0009: document purpose of ref implementation (#1547)
Capture discussion around the purpose of the reference implementation.
That we prioritise being an exemplary implementation over being a
pedagogical implementation.

Signed-off-by: Joshua Lock <jlock@vmware.com>
2021-08-30 13:27:45 -04:00
Jussi Kukkonen
2dd88d987b
Adding my GPG fingerprint to MAINTAINERS.txt (#1548)
Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-08-29 12:20:19 -04:00
Teodora Sechkova
21ff4920ab
docs: Improve formating
Remove/add new lines at the end of file.

Signed-off-by: Teodora Sechkova <tsechkova@vmware.com>
2021-08-25 17:06:36 +03:00
Teodora Sechkova
e5de36f4e0
docs: Add links to the specification
Signed-off-by: Teodora Sechkova <tsechkova@vmware.com>
2021-08-25 17:06:11 +03:00
Jussi Kukkonen
657aa3dfd5
docs: Improve ngclient docs
Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-08-25 17:05:07 +03:00
Jussi Kukkonen
1a714f7dc8
docs: Improve tuf.api docs
Write a bit more about the two modules, hide the actual TOC to not
repeat (and not have sphinx complain about missing items in TOC)

Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-08-25 17:05:06 +03:00
Jussi Kukkonen
4f71f98008
docs: Move the sphinx root to docs/
This allows using existing documentation in the published documentation
without
* moving the existing docs (which would break external links)
* tricks like symlinks that create issues with relative links

Put the api reference files into a subdirectory to avoid polluting the
main docs/ directory.

Include "Installation" and "Instructions for Contributors" in the
published documentation.

Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-08-25 17:05:06 +03:00
Jussi Kukkonen
3ee6a3e786
docs: Tweak INSTALLATION.rst
* Remove link to outdated roadmap
* Link to maintainers file in the same way as two lines earlier
* Fix formatting issues with code blocks

These fixes allow the installation rst to be used from sphinx sources
and from docs root.

Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-08-25 17:05:05 +03:00
Jussi Kukkonen
b3869186f0
docs: API Reference tweaks
* Improve content
* Make ngclient Updater __init__() visible in docs
* Remove "legacy implementation" (except for the note on API stability)

Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-08-25 17:05:05 +03:00
Teodora Sechkova
e32beb5845
Add sphinx docs source files
Add .rst source files for building documentation with
'sphinx'. The two mandatory files are conf.py containing
the build configuration and the master doc file index.rst.

Sphinx uses 'autodoc' to automatically include docstrings.
'autodoc' imports the modules and needs TUF installed in
the environment.

The following command will generate the documentation from the
source files in an html format:

`sphinx-build -b html docs/sphinx/source docs/sphinx/build/html`

Signed-off-by: Teodora Sechkova <tsechkova@vmware.com>
2021-08-23 18:25:03 +03:00
hosseinsia
01e2308428
Update CLI.md (#1508)
* Update CLI.md

Update the suggested command template for "trust keys", to make it consistent with other examples.

Signed-off-by: hosseinsia <hossein.siadati@datadoghq.com>

* Update docs/CLI.md

Remove the + to avoid confusion.

Co-authored-by: Martin Vrachev <martin.vrachev@gmail.com>
Signed-off-by: hosseinsia <hossein.siadati@datadoghq.com>

Co-authored-by: Martin Vrachev <martin.vrachev@gmail.com>
2021-07-27 20:32:36 -04:00
samuelgregorovic
112575d987 updated docs and comments
Updated/removed documented commands and comments which were referencing Python2. Also updated links to documentation referencing Python2 docs (unchanged where needed)

Signed-off-by: Samuel Gregorovic <samuelgregorovic@gmail.com>
Signed-off-by: samuelgregorovic <samuelgregorovic@gmail.com>
2021-07-14 10:37:08 +03:00
Joshua Lock
885fcacd0b
Merge pull request #1270 from lukpueh/adr0006
ADR0006: Where to implement model serialization
2021-07-08 09:06:03 +01:00
Martin Vrachev
1ba812581b ADR 8: change "Decision outcome"
After a discussion with Jussi, we realized that there are a couple of
places where we don't want to allow unrecognized fields because the
they are sensitive dictionaries and the specification requires an items
of certain types inside them.
The places where we don't want to allow unrecognized fields are
"keys", "roles", "meta", "hashes" or "targets".

Signed-off-by: Martin Vrachev <mvrachev@vmware.com>
2021-07-07 15:37:36 +03:00
Philippe Coval
f496c83e78 docs: Remove academics files
Duplication is not needed since files are hosted in website project:

https://github.com/theupdateframework/theupdateframework.io/tree/master/static/papers

Those generated files are not explicitly under Apache-2.0 licence
and AFAIK they can not be regenerated from missing (latex?) sources.

To avoid licence mixup.
It would help to have those files published elsewhere.
Meanwhile online (Github) links are used.

Debian had to repack the source package to make tarball compliant with DFSG
despite debian tools are known to be trustworthy,
this extra step would add weakess in the chain of trust

Cleanup done upstream would make distribution safer.

Bug: https://github.com/theupdateframework/tuf/issues/1161
Bug-Debian: https://salsa.debian.org/python-team/packages/tuf/-/merge_requests/11
Relate-to: https://github.com/theupdateframework/tuf/issues/263#issuecomment-835239415
Forwarded: https://github.com/theupdateframework/tuf/pull/1380
Relate-to: https://github.com/theupdateframework/specification/pull/160
Signed-off-by: Philippe Coval <rzr@users.sf.net>
2021-05-28 17:07:14 -04:00
Martin Vrachev
f695bfd24e
Add ADR8 to the ADR's index file
Signed-off-by: Martin Vrachev <mvrachev@vmware.com>
2021-04-16 12:26:42 +03:00
Jussi Kukkonen
ed3d00eb99
Merge pull request #1343 from MVrachev/adr8
Document ADR 0008 about unrecognized fields
2021-04-16 11:36:22 +03:00
Martin Vrachev
d0fa8fc8ca Document ADR 0008 about unrecognized fields
Even though, this ADR documents something already implied in the TUF
spec in [document formats](https://theupdateframework.github.io/specification/latest/#document-formats)
it seems better to document this decision clearly so that it could be
referenced and give an explanation why someone can load a metadata file
with additional unrecognized fields.

Signed-off-by: Martin Vrachev <mvrachev@vmware.com>
2021-04-14 13:51:55 +03:00
maoyangLiu
420937a96d fix the outdate url
Signed-off-by: maoyangLiu <liumaoyang@inspur.com>
2021-04-08 10:27:17 +08:00
Lukas Puehringer
164074dbd3 ADR0006: Where to implement model serialization
Add decision record about the design of de/serialization between
TUF metadata class model and wire line metadata formats.

Chosen option: Serialization and class model are decoupled, but the
class model provides conversion helper methods.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2021-03-18 10:57:27 +01:00
Lukas Puehringer
f9bf52f8cd Add contributor instructions for auto-formatters
Add cli snippet to run black and isort on the command line and
pointers to editor and pre-commit configuration to
docs/CONTRIBUTORS.rst.

Also add .pre-commit-config.yaml to .gitignore for independent
pre-commit configuration.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2021-03-17 14:13:43 +01:00
Lukas Puehringer
38ef45f542 Revert "Add basic pre-commit config..."
This reverts commit "Add basic pre-commit configuration for
tuf/api/*" (44aea45fd3) in order to
reduce maintenance burdern:

- pre-commit really is a package manager, thus the packages (git
hooks) pulled in via pre-commit would need to be kept up-to-date
and securely so (sic!).

- pre-commit requires contributors to opt-in via "pre-commit
install" regardless, so we might as well ask contributors to add
and tend to the corresponding configuration file on their own.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2021-03-17 12:19:57 +01:00
Lukas Puehringer
44aea45fd3 Add basic pre-commit configuration for tuf/api/*
Add optional pre-commit configuration to install and run
auto-formatters when committing new code to tuf/api/*.
Auto-formatters include:
- trailing-whitespace
- end-of-file-fixer
- black
- isort

This commit also adds pre-commit to the dev dependencies
and updates the contributor instructions accordingly.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2021-03-12 18:41:24 +01:00
Lukas Puehringer
5a626ca4b4 Require black and isort in tuf/api/* via tox
Configure lint build in tox.ini to check if code in tuf/api/* is
formatted according to black and isort style rules:
https://black.readthedocs.io/en/stable/the_black_code_style.html
https://pycqa.github.io/isort/

In addition to our new style guide (#1128) and corresponding linter
configuration, requiring auto-formatting should help to further
reduce reviewing effort. The auto-formatter black was chosen for
the following reasons:
- It seems to be the most popular formatter in the Python ecosystem
- It is well documented including integration instructions with
  most of the tools we use (git, GitHub Actions, pylint, a range of
  editors, pyproject.toml #1161)
- It checks that the reformatted code produces a valid AST that is
  equivalent to the original
- It has almost no ways of customization, which means no
  customization effort required, and more (cross-project) style
  uniformity, lowering contribution barriers
- It converts single to double quotes, where reasonable, which is
  exactly what we recommend
- The style choices it makes seem generally reasonable and don't
 conflict with our style guide, except for favoring hanging over
 aligned indentation, which is the opposite of what we recommend.
 But we are willing to update the adapt our style guide.

Auto-format pre-commit configuration will be added in a subsequent
commit.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2021-03-12 18:41:13 +01:00
Joshua Lock
76c0a54e75 Prepare v0.17.0 release
Signed-off-by: Joshua Lock <jlock@vmware.com>
2021-02-25 10:49:12 +00:00
Martin Vrachev
9ad55bdd84 Docs: change the editable venv installation order
If you follow the instructions we provide for our contributors in
docs/CONTRIBUTORS.rst your sys.path (used to search for imports)
will put securesystemlib project directory first and tuf directory
second.
This creates a problem with imports from tuf modules because we can
import the wrong file or on relative imports (as currently we
use in the tests when we import utils), the imports cannot be resolved.

If we change the installation order, then tuf directory will be the
first in the import resolution path and those problems will be fixed.

PS: I want to express my gratitude towards Jussi who helped me find
this problem.

Signed-off-by: Martin Vrachev <mvrachev@vmware.com>
2021-02-02 15:10:42 +02:00
Jussi Kukkonen
9e34c5fd9b MAINTAINERS: Add myself
I'd like to apply for this position, let me know if you need a CV :)

Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2021-01-18 12:30:56 +02:00
Lukas Puehringer
9ec845cbc1 Adopt CI change in TUF docs
Replace mentions of travis/appveyor with GitHub Actions in
governance (contribution) and readme (badges) documents.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2020-12-17 10:28:38 +01:00
Lukas Puehringer
2385ebe7b0 Add style guide usage instructions to ADR0005
Similar instructions are in the style guide preamble, but we repeat
it here for emphasis.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2020-12-04 10:50:36 +01:00
Lukas Puehringer
b5252fed65 ADR0005: Decide on python code style guide
Use Google style guide with refinements, because the Google style
guide is a comprehensive, well-established style guide that is
mostly based on PEP-8 and was accepted by everyone on the TUF team.

There is no need to replicate these recommendations. However, we do
provide a very slim document with additional refinements, in order
to emphasize on items the we consider especially important, want to
be handled differently, or in one specific way, where the Google
guide would allow multiple.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
Co-authored-by: Joshua Lock <jlock@vmware.com>
2020-12-04 10:39:24 +01:00
Lukas Puehringer
229e9df630 ADR0004: Justify extent of OOP in metadata model
Add MADR that justifies why we want to add custom classes for
complex tuf metadata attributes.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2020-11-30 14:59:56 +01:00
Teodora Sechkova
3370005e7d
ADR003: Add pros and cons of the options
Describe pros of developing TUF 1.0.0 in a subdirectory
of the current implementation against the rest of the options.

Signed-off-by: Teodora Sechkova <tsechkova@vmware.com>
2020-11-27 12:26:52 +02:00
Teodora Sechkova
1e24977677
ADR003: describe transition to stand-alone TUF
Describe the steps for transitioning from TUF 1.0.0
in a subdirectory to stand-alone TUF 1.0.0

Signed-off-by: Teodora Sechkova <tsechkova@vmware.com>
2020-11-27 12:26:52 +02:00
Teodora Sechkova
3a1ec87d52
ADR0003: where to develop TUF 1.0.0
Document the outcome of #1126 to develop TUF 1.0.0
in a subdirectory of the current TUF implementation.

Signed-off-by: Teodora Sechkova <tsechkova@vmware.com>
2020-11-27 12:26:48 +02:00
Joshua Lock
7ff26717a1 Prepare 0.16.0 release
Update docs/CHANGELOG.md and bump version number for a 0.16.0 release

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-11-26 13:15:14 +00:00
Joshua Lock
35177fbe9c ADR0002: document deprecation strategy post 1.0
Per the discussion in #1127 opt to support the old release on a best-effort
basis.

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-11-24 15:26:51 +00:00
Lukas Puehringer
d46ebd016e Update Travis CI build badge/docs after migration
Update badge URL in readme after migrating from travis-ci.org to
travis-ci.com, due to brownout on the former.

Migration was performed via Travis Web UI:
https://docs.travis-ci.com/user/migrate/open-source-repository-migration

NOTE: This is a quick fix to speed up Travis builds until we switch
to GitHub Actions (#1195)

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2020-11-12 10:07:53 +01:00
Lukas Puehringer
ff8819577b Adopt sslib keygen interface encryption changes
secure-systems-lab/securesystemslib#288 changes the key generation
interface functions in such a way that it is clear if a call opens
a blocking prompt, or writes the key unencrypted. To do this two
functions are added per key type:
 - `generate_and_write_*_keypair_with_prompt`
 - `generate_and_write_unencrypted_*_keypair`

The default `generate_and_write_*_keypair` function now only allows
encrypted keys and only using a passed password. This respects the
principle of secure defaults and least surprise.

sslib#288 furthermore adds a protected
`_generate_and_write_*_keypair`, which is not exposed publicly
because it does not encrypt by default, but is more flexible and
thus convenient e.g. to consume all arguments from a key generation
command line tool such as 'repo.py'.

This commit adds the new public functions to the tuf namespace and
adopts their usage accordingly.

NOTE regarding repo.py:
This commit does not fix any problematic password behavior of
'repo.py' like default passwords, etc. (see #881). It only adopts
the sslib#288 changes to maintain the current behvior, plus
removing one glaringly obsolete password prompt.

NOTE regarding key import:
The securesystemslib private key import functions were also changed
to no longer auto-prompt for decryption passwords , TUF, however,
only exposes custom wrappers (see repository_lib) that do
auto-prompt. sslib#288 changes to the prompt texts are nevertheless
propagated to tuf and reflected in this commit.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2020-11-11 10:27:56 +01:00
Joshua Lock
1b3f580dc9 ADR0001: clarify when/where Python 3.6+ is expected
Provide additional context to clarify where we expect Python 3.6+ to be used
exclusively (new modules) and link to other discussions around the future of
Python 2.7 supporting code.

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-10-27 11:25:42 +00:00
Joshua Lock
71de3f64ef ADR: only use Python 3.6+
Document the decision drop support for EOL Python versions, most notable
Python 2.7

Fixes #1125

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-10-26 16:26:52 +00:00
Joshua Lock
e3d84391b4 docs/adr: start to keep ADRs in MADR format
In order to make decisions about the code and the design explicit and easier
to reference in future we want to record significant architectural decisions.

This commit introduces docs/adr with a template Architectural Decision Record
and index using the [MADR](https://adr.github.io/madr/) format.

It also adds ADR 0000 to document the decisions to use MADR.

Fixes #1141

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-10-26 16:26:52 +00:00
Lukas Puehringer
10b9db1e40 Prepare 0.15.0 release (II)
Update docs/CHANGELOG.md to include missing items.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2020-10-22 15:27:46 +02:00
Joshua Lock
33ac374184 Bump securesystemslib from 0.16.0 to 0.17.0
We just released securesystemslib 0.17.0 and it would be better if tuf did
not pin the prior version.

https://pypi.org/project/securesystemslib/0.17.0/
https://github.com/secure-systems-lab/securesystemslib/releases/tag/v0.17.0

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-10-21 18:39:25 +01:00
Joshua Lock
8169b00745 Prepare 0.15.0 release
Update docs/CHANGELOG.md and bump version number for a 0.15.0 release

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-10-21 11:42:21 +01:00
Joshua Lock
f4520317b1
Merge pull request #1163 from joshuagl/joshuagl/nits
Update release process and mark unit tests as executable
2020-10-15 10:38:26 +01:00
Joshua Lock
0db58df8aa Update release docs
* Strongly encourage the reader to use Python 3 for creating release
  artefacts
* Recommend cleaning the tuf directory before creating the release

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-10-05 11:22:08 +01:00
Martin Vrachev
cce6b7bb59 Add doc for the possible cmd args while testing
This information could be useful for newcomers
to better understand how to debug TUF.

Signed-off-by: Martin Vrachev <mvrachev@vmware.com>
2020-10-01 15:20:59 +03:00
Jussi Kukkonen
1e0a2a3103 docs: Mention how to run individual tests
Fixes #1076.

Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2020-09-15 22:34:12 +03:00
Joshua Lock
3e68b3a07e Prepare 0.14.0 release
Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-09-09 11:11:48 +01:00
Joshua Lock
fcc6841247 More consistent formatting in RELEASE.md
Consistently enclose filenames referred to througout the release process in
backticks to ensure they are rendered in the code style.

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-09-09 11:07:25 +01:00
Joshua Lock
96c00f319a Add tag pushing to RELEASE.md
Ensure someone following the release process pushes the tag they create
and include a tag message matching the common form, rather than requiring
somebody following the steps to figure out what to enter into their editor

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-08-04 15:11:21 +01:00
Joshua Lock
32ba3bbcad Fix CHANGELOG formatting
For some reason the first level 3 heading 'Added' was not rendering
correctly. The level 2 heading for 'Fixed' should be level 3.

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-08-04 15:10:03 +01:00
Joshua Lock
2dc4651136 docs/CHANGELOG.md: update for v0.13.0
Categorise changes by type, per the recommendations at keepachangelog.com

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-08-04 11:47:47 +01:00
Joshua Lock
0714632edc docs/RELEASE.md: link to guidance on changelogs
https://keepachangelog.com provides good advice on curating a changelog

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-08-04 09:49:12 +01:00
Joshua Lock
ea958bc568 Prepare 0.13.0 release
Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-08-04 09:31:16 +01:00
Joshua Lock
506ae5552d Document release process steps
Write down the expected steps for a maintainer to follow when making a
release of tuf

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-08-04 09:31:16 +01:00
Trishank Karthik Kuppusamy
6a7c60485c
Delete ADOPTERS.md
Use a single source of truth on the .io website

Signed-off-by: Trishank Karthik Kuppusamy <trishank.kuppusamy@datadoghq.com>
2020-07-21 12:14:14 -04:00
Jussi Kukkonen
dc78d89f4f Update Tutorial on dependency installation
* Remove reference to deprecated settings
* Mention that the tutorial expects the dependencies and link to
  instructions

Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2020-06-23 11:02:31 +03:00
Jussi Kukkonen
179892c1e9 Update Tutorial on cryptographic keys
Lot of changes in 7 lines:
* PyCrypto is no longer an option: remove mention of it
* RSA-PSS wiki page now redirects to a fairly useless stub: replace it
  with the RFC (it's not light reading but better than nothing)
* Mention ECDSA
* Remove mention of json for RSA keys: that does not seem to be true

Signed-off-by: Jussi Kukkonen <jkukkonen@vmware.com>
2020-06-17 18:01:45 +03:00
Jesús Castro
9badf8a51e
Add python 3 use case
This indication can be found on other documents.

Signed-off-by: Jesús Castro <x51v4n@gmail.com>
2020-06-10 06:30:23 -05:00
Joshua Lock
165cdfb3ee Update MAINTAINERS
Add Joshua's PGP fingerprint

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-05-05 21:30:28 +01:00
Teodora Sechkova
a71b3c2b67
Update TUTORIAL and test_tutorial
Improve the coding style in TUTORIAL in the case
where absolute path to a file is needed to perform file system
access and at the same time is rejected by Targets methods.

Signed-off-by: Teodora Sechkova <tsechkova@vmware.com>
2020-04-08 18:58:27 +03:00
Teodora Sechkova
ead737d4b0
Remove get_filepaths_in_directory() from tutorial
Replace the absolute paths returned by get_filepaths_in_directory()
in the tutorial with a hard-coded list of relaive filepaths since
add_target(s) and delegate() methods raise excception on absolute
paths.

Remove an obsolete warning about path pattern's location.

Signed-off-by: Teodora Sechkova <tsechkova@vmware.com>
2020-04-08 18:58:26 +03:00
Lukas Puehringer
6f94aa1653 Remove link to outdated client docs in tutorial
Remove link to incomplete and severely outdated
client_setup_and_repository_example.md in client section of
TUTORIAL.md.

Instead we should link (or move the entire client tutorial part) to
tuf/client/README.md, which is more comprehensive and less outdated
than above document (see #808).

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2020-03-16 10:31:14 +01:00
Joshua Lock
ca953c3335 Update MAINTAINERS
Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-03-11 14:58:51 +00:00
Joshua Lock
8dfee1a106 Update docs/METADATA.md to reflect recent spec change
The specification was updated in PR #40 to remove root.json from
snapshot.json

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-03-11 11:35:37 +00:00
Lukas Puehringer
c490a8daee Quickfix critical tutorial typo
In tutorial code snippet fix a call to repository.mark_dirty that
passes a non-existing bin role name raising:
"tuf.exceptions.UnknownRoleError: Role name does not exist: 90-7"

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2020-03-06 10:47:52 +01:00
Joshua Lock
eaefbd9fda Add securesystemslib[color] to packages installed in the tutorial
colorama is now an optional dependency for securesystemslib, and so isn't
installed by default. However, the repo script uses colorama and doesn't
handle its absence - add securesystemslib[colors] to ensure colorama is
installed.

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-02-18 15:05:13 +00:00
Lukas Puehringer
15d1e933a0 Restructure requirements files
* Use suffixed instead of prefixed sub-requirements files to group
  them alphabetically in the file tree.
* Layer requirements files akin to the in-toto project
  (see in-toto/in-toto#294). The hierarchy is:

  - *requirements.in*
    tuf runtime requirements, including optional requirements
    (pynacl and cyrptography)

  - *requirements-pinned.txt*
    pinned tuf runtime requirements, including optional
    and transitive (1 level deep) requirements and their hashes.

    The file is generated semi-automatically using pip-compile
    and a bash script (see document header), based off of
    requirements.in, combining requirements from all supported
    Python versions.

    This file should be auto-updated, by e.g. dependabot, and be used
    for ci/cd tests, to catch issues with new dependencies.

  - *requirements-test.txt*
    additional test runtime requirements

  - *requirements-tox.txt*
    combines requirements.txt, requirements-test.txt and additional
    test tools (for linting and coverage), i.e. everything that is
    needed in each tox environment to run the tests.

  - *requirements-dev.txt*
    lists tox for local development and testing, and also
    requirements-tox.txt and tuf in editable mode to run
    the test suite or individual tests directly.

  - *requirements.txt*
    requirements-pinned.txt with the hashes of the dependencies
    as reported by pip at the time of creating the file.
    NOTE: this is not used for testing or  dev-install because pip
    doesn't allow mixed (with and without hashes) installations.

    This file should also be auto-updated, by e.g. dependabot.

* Removes an obsolete version constraint on coverage

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2020-02-06 17:35:51 +01:00
Santiago Torres
bea6496dc2
release: 0.12.2
Signed-off-by: Santiago Torres <santiago@archlinux.org>
2020-01-10 15:43:44 -05:00
Domenico Andreoli
feaf88e33b Fix typo in section "Release Verification"
Signed-off-by: Domenico Andreoli <domenico.andreoli@linux.com>
2019-12-20 10:06:44 +01:00
Lukas Puehringer
da26e9adcd doc: Revert accidental space deletion in tutorial
Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-12-16 15:16:24 +01:00
Lukas Puehringer
7e8b7e5db1 doc: Explicitly mark roles dirty in tutorial
TUF does not reliably mark roles as dirty whose metadata needs
to be re-generated.

Only roles that have changed are marked as dirty, but sometimes
roles metadata needs to be updated, although the role wasn't
changed directly (see #958).

Furthermore, the tutorial assumes at one point that the reader
leaves and re-enter the interpreter session, being forced to reload the
signing keys, roles that later need to be re-written, are marked as
dirty. If the reader does not leave the interpreter, the roles are
not marked as dirty (see #964).

To not confuse the reader with flawed state-keeping, and to never
write an inconsistent repository to disk, the tutorial lets the
reader explicitly mark all roles that need to be re-written as
"dirty".

This can be changed once above issues are fixed.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-12-16 15:16:24 +01:00
Lukas Puehringer
fc23496e38 doc: Update "Delegate to Hashed Bins" in tutorial
Explain and show output of delegate_hashed_bins() function call in
tutorial snippet.

Also update the subsequent comment for better continuity.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-12-16 15:16:24 +01:00
Lukas Puehringer
5a8dbd42cb doc: Update delegation section in tutorial
- Ask the reader to ignore a misleading warning about the location of
  a delegation path pattern.
  The comment may be removed when fixing the warning in
  theupdateframework/tuf#963.

- Comment out text that has become obsolete when commenting out
  the "Revoke Delegated Role" section (in an earlier commit).

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-12-16 15:16:24 +01:00
lukpueh
9375885389 docs: Fix typos in tutorial code snippet comments
Co-Authored-By: Joshua Lock <jlock@vmware.com>
Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-12-16 15:16:24 +01:00
Lukas Puehringer
512c62daa3 doc: Update "How to Perform an Update" in tutorial
- Change directory names to what cli tool repo.py expects
- Remove unrelated "tufenv" note
- Mention that `tuf` must be installed

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-12-16 15:16:24 +01:00
Lukas Puehringer
bb6a32ae27 doc: Comment out "Consistent Snapshots" snippet
The text above the snippet explains the basic idea of "consistent
snapshots" and how to generate them with `write` and `writeall`.

The commands in the snippet just leave the repo in an inconsistent
state (see comment).

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-12-16 15:16:24 +01:00
Lukas Puehringer
ca8e9cc53a doc: Fix repo.dirty_roles() output in tutorial
- Fix expected output
- Update comments
- Add a few additional calls, to help the reader understand the
  repo state
- Also see theupdateframework/tuf#958

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-12-16 15:16:24 +01:00
Lukas Puehringer
bd813d86a5 doc: Update delegation-related tutorial sections
In "Targets" section:
- Remove `repository.targets('<delegated rolename>').add_target(...)`
  command, because it is not copy-pastable and delegations
  have not yet been covered at that point.
- Update the "remove targets" snippet to remove the previously added
  "myproject/file4.txt" instead of "file3.txt", because we will add
  "myproject/file4.txt" to the delegated "unclaimed" role in the
  Delegation section.

In "Delegation" section:
- Change "unclaimed" delegation pattern from 'foo*.tgz', for which
  no file exists in the tutorial, to 'myproject/*.txt'.
- Add "myproject/file4.txt" to the delegated unclaimed targets role
- Remove the command that updates the version of the "unclaimed"
  role, because this should not be done manually, and the add_target
  call shows just as well how to access delegated roles.
- Comment out the revoke delgated role section, leaving a TODO note
  for required updates (should be ticketized).

In "Delegate to Hashed Bins":
- Add call to remove target "myproject/file4.txt" from "unclaimed",
  because it is further delgated to hashed bins
- Add dirty_roles() call to show all the newly created bins
- Add mark_dirty() and writeall() calls to create a consistent
  state of the repo

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-12-16 15:16:24 +01:00
Lukas Puehringer
45c4f4c08e doc: Update "Dump Metadata and ..." tutorial
The section does not fit in the continuity of the tutorial and
misses commands to make it fully copy-pastable.

This commit marks the section as "Excursion" and updates the
snippets to make the commands fully copy-pastable, using files
created in prior tutorial sections.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-12-16 15:16:24 +01:00
Lukas Puehringer
654e8dc3a0 doc: Fix targets file paths in tutorial snippets
- Correctly show that repo.get_filepaths_in_directory() returns
  absolute and not relative paths
- Pass absolute path to repo.targets.add_target() to fix exception
- Also see theupdateframework/tuf#957

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-12-16 15:16:24 +01:00
Lukas Puehringer
5616fd206c doc: Fix repo.status() output in tutorial snippet
- Fix expected output
- Update comments
- Also see theupdateframework/tuf#955

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-12-16 15:16:24 +01:00
Lukas Puehringer
eed900354a doc: Add "continuing..." line in tutorial snippets
Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-12-16 15:16:24 +01:00
Lukas Puehringer
b86b4aad5b doc: Remove Python prompt tutorial snippet
Reasons are:

- The prompt says 2.7.3  Sep 26 2013, which makes the tutorial look
  outdated
- There is another section that explains how snippets should be
  executed in a Python interactive interpreter
- The only activity in the snippet is importing tuf functions and
  creating a repo, both of which is done in another snippet below.
  And the here created repo is not re-used
- The tutorial is long enough

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-12-16 15:16:24 +01:00
Sebastien Awwad
8e22de5842 Correct remove_target() call in TUTORIAL.md and test_tutorial.py
Target removal is done relative to the root of the targets dir.

Signed-off-by: Sebastien Awwad <sebastien.awwad@gmail.com>
2019-12-16 15:16:24 +01:00
Sebastien Awwad
e24525c94c In repo tutorial, fix consistent snapshots instructions
to include loading the root signing keys and explaining why.

Also update test_tutorial.py

Signed-off-by: Sebastien Awwad <sebastien.awwad@gmail.com>
2019-12-16 15:16:24 +01:00
Sebastien Awwad
608e377d83 Exclude leading '/' for target fnames in tutorial and its tester
Because leading '/' is no longer allowed in target filenames in
target addition or delegation.

See https://github.com/theupdateframework/tuf/issues/639

While we're at it, remove some other unnecessary '/' characters
in repository creation and loading in the tutorial and tutorial
test.

Signed-off-by: Sebastien Awwad <sebastien.awwad@gmail.com>
2019-12-16 15:16:24 +01:00
Sebastien Awwad
56f14c4342 Remove add_restricted_paths from TUTORIAL.md and test_tutorial.py
add_restricted_paths was renamed to add_path; however, this
function represents a problematic element of TUF that assumes
that roles are have a single delegator and delegatee, and that
one can refer to a role's expected keys without being concerned
about any delegation metadata....

So this is being removed from the tutorial. In time, add_paths
will either be removed or changed (to expect a delegator role
and a delegatee role, not just a delegatee role).

This comment does not do justice to the issue: please see TUF
GitHub Issue #660:
https://github.com/theupdateframework/tuf/issues/660

Signed-off-by: Sebastien Awwad <sebastien.awwad@gmail.com>
2019-12-16 15:16:24 +01:00
Sebastien Awwad
e2ec3ef158 Remove keystore/ use from TUTORIAL.md and test_tutorial
While it may be nice, the use of a keystore/ directory for the
temporary keys created in the tutorial complicates the code a
good bit when it's done in a portable way (tons of os.path.join()
calls), and that's not worth it. It also is a slight complication
in a tutorial that profits from being as simple as possible.

Tests will be run in multiple environments (including non-Linux
environments) and to leave so many extra subdirectory uses in the
tutorial means that the tutorial test will deviate over a large
number of lines from the TUTORIAL.md content it is intended to
test, which would be bad.

This commit adjusts both the tutorial doc and the regression test
for the tutorial.

Signed-off-by: Sebastien Awwad <sebastien.awwad@gmail.com>
2019-12-16 15:16:24 +01:00
lukpueh
c5dac3136d Revert "Minor tutorial related tweaks made after reviewing PR #775"
- line-wraps are integrated with
190a736d297ef5d8d3c1e8761ac196666954f3a2 in #775
- sorting the value returned by `get_dirty_roles()` in
`dirty_roles()` is not necessary as `get_dirty_roles()` already
returns a sorted list per ac010337f0e154f9c183f8abe759ce26ed16731c
in #775.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-11-29 12:35:28 +01:00
Joshua Lock
282c9aa98b TUTORIAL: minor cleanup
An attempt to make part of the tutorial less jarring, and reformatting
of the surrounding text to keep the lines <80 characters.

Signed-off-by: Joshua Lock <jlock@vmware.com>
2019-11-28 22:01:33 +00:00
Lukas Puehringer
733c2edfe0 CHANGELOG: Add v0.12.1 entry
Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-11-14 15:49:10 +01:00
Justin Cappos
f6bd46fc13 Governance clarifications
Signed-off-by: Justin Cappos <justincappos@gmail.com>
Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-11-11 15:51:52 +01:00
Justin Cappos
1f2df57ecd
Update docs/GOVERNANCE.md
Signed-off-by: Justin Cappos <justincappos@gmail.com>

Co-Authored-By: Trishank K Kuppusamy <33133073+trishankatdatadog@users.noreply.github.com>
2019-11-05 15:32:29 -05:00
Justin Cappos
35b97a1951
Update docs/GOVERNANCE.md
Signed-off-by: Justin Cappos <justincappos@gmail.com>

Co-Authored-By: Lois Anne DeLong <lad278@nyu.edu>
2019-11-05 15:25:36 -05:00
Justin Cappos
01b90c4245
Update docs/GOVERNANCE.md
Signed-off-by: Justin Cappos <justincappos@gmail.com>

Co-Authored-By: Lois Anne DeLong <lad278@nyu.edu>
2019-11-05 15:25:11 -05:00
Justin Cappos
7753af072c
Update docs/GOVERNANCE.md
Signed-off-by: Justin Cappos <justincappos@gmail.com>

Co-Authored-By: Lois Anne DeLong <lad278@nyu.edu>
2019-11-05 15:25:00 -05:00
Justin Cappos
6a13894fb5
CB term information
Signed-off-by: Justin Cappos <justincappos@gmail.com>
2019-11-05 13:28:11 -05:00
Justin Cappos
991b4f3ee3
Merge pull request #947 from theupdateframework/JustinCappos-CB-clarify+DCO
CB clarifications requested by Liz
2019-11-05 10:42:19 -05:00
Trishank K Kuppusamy
f067ff9e3e
Update MAINTAINERS.txt 2019-11-05 09:56:28 -05:00
Trishank K Kuppusamy
ccd8904a1e
Update MAINTAINERS.txt 2019-11-05 09:55:17 -05:00
Justin Cappos
bab230ff32
CB clarifications requested by Liz
Signed-off-by: Justin Cappos <justincappos@gmail.com>
2019-11-05 09:00:35 -05:00
Justin Cappos
3973e79b87
changes recommended by Liz
Signed-off-by: Justin Cappos  <justincappos@gmail.com>
2019-10-30 06:31:33 -04:00
Justin Cappos
2ad18feb27
quorum on CB
Signed-off-by: Justin Cappos <justincappos@gmail.com>
Signed-off-by: Santiago Torres <santiago@nyu.edu>
2019-10-16 11:52:12 -04:00
Lukas Puehringer
3b77a7d320 CHANGELOG: Add 0.12.0 entry
Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-10-14 16:47:16 +02:00
Lukas Puehringer
42a4cee56c Add slow retrieval disclaimer
Since https://github.com/theupdateframework/tuf/pull/781 we
only provide limited protection against slow retrieval attacks.
So far this has only been discussed in above issue and hinted at
by a disabled test and a code comment in that test.

This change adds a corresponding disclaimer to a more prominent
place, i.e. the list of attacks in SECURITY.md.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
Co-Authored-By: Trishank K Kuppusamy <33133073+trishankatdatadog@users.noreply.github.com>
2019-10-10 16:43:46 +02:00
lukpueh
f79ee33501
Merge pull request #915 from lukpueh/tox-with-sslib-master
Add sslib master tox build + flesh out test docs
2019-09-18 10:28:05 +02:00
Lukas Puehringer
86257f2729 Add extra installation instruction to contrib doc
Add hint to install `coverage` before using it.

This should be installed via dev-requirements.txt, however it
does not seem to fit in there, because dev-requirements.txt pins
all its dependencies which does not seem to make sense for a
development tool.

Maybe a hierarchy of requirements.txt similar to
06a28987dc
could be established.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-09-18 10:21:53 +02:00
Lukas Puehringer
593490dd7d Add sslib master tox build + flesh out test docs
Add a tox build that runs tests against securesystemslib's tip of
development, i.e. master branch, to ease preparation of tuf for a
new securesystmeslib release.

The tox build is run on travis but is allowed to fail.

This commit also fleshes out the testing section of the
contribution documentation.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-09-16 19:04:16 +02:00
Lukas Puehringer
94d1c51611 Update link to historical tuf-spec.0.9.txt
Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-09-16 15:43:39 +02:00
Lukas Puehringer
a799a69494 Update docs/MAINTAINERS.txt
- Remove alumni @vladimir-v-diaz
- Add @SantiagoTorres and Marina (@@mnm678)

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2019-07-16 12:00:18 +02:00
Sebastien Awwad
56a2928952
DOC: move full install instructions to INSTALLATION.rst
and note that if errors occur while installing the optional
crypto dependencies, that the non-Python dependencies section
should be consulted.

Also adds a git clone step to the development installation
instructions in the contributors' instructions, and other
minor installation notes for contributors.

Signed-off-by: Sebastien Awwad <sebastien.awwad@gmail.com>
2019-04-08 17:13:11 -04:00
Sebastien Awwad
67dd649680
DOC: cover possible environment requirements in QUICKSTART
Signed-off-by: Sebastien Awwad <sebastien.awwad@gmail.com>
2019-04-08 15:21:52 -04:00
Sebastien Awwad
2af4d3f12e
DOC: simplify installation instructions in QUICKSTART
Signed-off-by: Sebastien Awwad <sebastien.awwad@gmail.com>
2019-04-08 13:32:43 -04:00
Sebastien Awwad
ed6acd4ef1
minor DOC: label the advanced tutorial as such
Signed-off-by: Sebastien Awwad <sebastien.awwad@gmail.com>
2019-04-08 11:56:45 -04:00
Sebastien Awwad
1f3e5b6483
DOC: collapse CLI_EXAMPLES.md into CLI.md
Signed-off-by: Sebastien Awwad <sebastien.awwad@gmail.com>
2019-04-08 11:54:10 -04:00
Sebastien Awwad
5a94d5db3e
minor DOC: fix unfinished sentence, some punctuation
in the QUICKSTARD.md

Signed-off-by: Sebastien Awwad <sebastien.awwad@gmail.com>
2019-04-08 11:49:25 -04:00
Sebastien Awwad
907186e6a4
DOC: revise quickstart and reorganize tutorials:
- correctly frame the CLI's current state as a tutorial toy.
- provide a friendlier quickstart that puts what it's doing into
  perspective and guides you to next steps.
- provide a better sense of what each tutorial/quickstart doc is
  for.
- make the getting started page slightly more friendly.

Signed-off-by: Sebastien Awwad <sebastien.awwad@gmail.com>
2019-04-05 13:44:07 -04:00
Sebastien Awwad
a4cf9c95c2
Merge pull request #833 from theupdateframework/roadmap_corrections
DOC: Update the outdated ROADMAP.md
2019-03-28 15:29:11 -04:00
Sebastien Awwad
24618a956b
DOC: Clarify repository_tool interface to delegated roles
Add note to make clear what was implicit: that once a delegated role is created,
it can be accessed (for the same purposes as you'd access the Targets role
using `repository.targets`) as: `repository.targets("<delegated rolename>")`.

Also add that specific note to the add_targets section of the tutorial.
2019-03-25 10:47:11 -04:00
Sebastien Awwad
e541d05f08
DOC: Note client dir creation in CLI instructions
Note that the `repo.py --init` call also sets up a client directory.

A student recently ran into some confusion on this point, and it's not properly documented here.
2019-03-11 10:31:24 -04:00