Commit graph

324 commits

Author SHA1 Message Date
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