Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release purldb toolkit #295

Merged
merged 11 commits into from
Feb 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ test:
${ACTIVATE} DJANGO_SETTINGS_MODULE=purldb_project.settings ${PYTHON_EXE} -m pytest -vvs packagedb/tests/test_throttling.py
${ACTIVATE} DJANGO_SETTINGS_MODULE=matchcode_project.settings ${PYTHON_EXE} -m pytest -vvs matchcode_pipeline
${ACTIVATE} ${PYTHON_EXE} -m pytest -vvs matchcode-toolkit --ignore matchcode-toolkit/src/matchcode_toolkit/pipelines
${ACTIVATE} ${PYTHON_EXE} -m pytest -vvs purldb-toolkit
${ACTIVATE} ${PYTHON_EXE} -m pytest -vvs purldb-toolkit/

shell:
${MANAGE} shell
Expand Down
9 changes: 5 additions & 4 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,15 @@ CLI_ARGS=$1
CUSTOM_PACKAGES=""

# Requirement arguments passed to pip and used by default or with --dev.
REQUIREMENTS="$CUSTOM_PACKAGES --editable matchcode-toolkit --editable purldb-toolkit --editable . --constraint requirements.txt"
DEV_REQUIREMENTS="$CUSTOM_PACKAGES --editable matchcode-toolkit --editable purldb-toolkit --editable .[testing] --constraint requirements.txt --constraint requirements-dev.txt"
DOCS_REQUIREMENTS="$CUSTOM_PACKAGES --editable matchcode-toolkit --editable purldb-toolkit --editable .[docs] --constraint requirements.txt"
REQUIREMENTS="$CUSTOM_PACKAGES --editable matchcode-toolkit/ --editable purldb-toolkit/ --editable . --constraint requirements.txt"
DEV_REQUIREMENTS="$CUSTOM_PACKAGES --editable matchcode-toolkit/ --editable purldb-toolkit/[testing] --editable .[testing] --constraint requirements.txt --constraint requirements-dev.txt"
DOCS_REQUIREMENTS="$CUSTOM_PACKAGES --editable matchcode-toolkit/ --editable purldb-toolkit/ --editable .[docs] --constraint requirements.txt"

# where we create a virtualenv
VIRTUALENV_DIR=venv

# Cleanable files and directories to delete with the --clean option
CLEANABLE="build dist venv .cache .eggs matchcode-toolkit/build matchcode-toolkit/dist matchcode-toolkit/.eggs"
CLEANABLE="build dist venv .cache .eggs matchcode-toolkit/build matchcode-toolkit/dist matchcode-toolkit/.eggs purldb-toolkit/build purldb-toolkit/dist"

# extra arguments passed to pip
PIP_EXTRA_ARGS=" "
Expand Down Expand Up @@ -131,6 +131,7 @@ install_packages() {
# be reinstalled a second time and reused from the virtualenv and this
# speeds up the installation.
# We always have the PEP517 build dependencies installed already.
"$CFG_BIN_DIR/pip" install flot

"$CFG_BIN_DIR/pip" install \
--upgrade \
Expand Down
22 changes: 11 additions & 11 deletions minecode/tests/testfiles/directories/find-ls-expected.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,63 +31,63 @@
"path":"groovy/2.4.6/distribution/apache-groovy-binary-2.4.6.zip",
"type":"f",
"size":36461535,
"date":"2023-02",
"date":"2024-02",
"target":null
},
{
"path":"groovy/2.4.6/distribution/apache-groovy-binary-2.4.6.zip.asc",
"type":"f",
"size":473,
"date":"2023-02",
"date":"2024-02",
"target":null
},
{
"path":"groovy/2.4.6/distribution/apache-groovy-binary-2.4.6.zip.md5",
"type":"f",
"size":65,
"date":"2023-02",
"date":"2024-02",
"target":null
},
{
"path":"groovy/2.4.6/distribution/apache-groovy-docs-2.4.6.zip",
"type":"f",
"size":14763401,
"date":"2023-02",
"date":"2024-02",
"target":null
},
{
"path":"groovy/2.4.6/distribution/apache-groovy-docs-2.4.6.zip.asc",
"type":"f",
"size":473,
"date":"2023-02",
"date":"2024-02",
"target":null
},
{
"path":"groovy/2.4.6/distribution/apache-groovy-docs-2.4.6.zip.md5",
"type":"f",
"size":63,
"date":"2023-02",
"date":"2024-02",
"target":null
},
{
"path":"groovy/2.4.6/distribution/apache-groovy-sdk-2.4.6.zip",
"type":"f",
"size":58195864,
"date":"2023-02",
"date":"2024-02",
"target":null
},
{
"path":"groovy/2.4.6/distribution/apache-groovy-sdk-2.4.6.zip.asc",
"type":"f",
"size":473,
"date":"2023-02",
"date":"2024-02",
"target":null
},
{
"path":"groovy/2.4.6/distribution/apache-groovy-sdk-2.4.6.zip.md5",
"type":"f",
"size":62,
"date":"2023-02",
"date":"2024-02",
"target":null
},
{
Expand All @@ -108,14 +108,14 @@
"path":"groovy/2.4.6/sources/apache-groovy-src-2.4.6.zip.asc",
"type":"f",
"size":473,
"date":"2023-02",
"date":"2024-02",
"target":null
},
{
"path":"groovy/2.4.6/sources/apache-groovy-src-2.4.6.zip.md5",
"type":"f",
"size":62,
"date":"2023-02",
"date":"2024-02",
"target":null
},
{
Expand Down
8 changes: 8 additions & 0 deletions purldb-toolkit/CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Changelog
=========

v0.1.0
------------

- Initial release

86 changes: 86 additions & 0 deletions purldb-toolkit/CODE_OF_CONDUCT.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
Contributor Covenant Code of Conduct
====================================

Our Pledge
----------

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our
project and our community a harassment-free experience for everyone,
regardless of age, body size, disability, ethnicity, gender identity and
expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity and
orientation.

Our Standards
-------------

Examples of behavior that contributes to creating a positive environment
include:

- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

- The use of sexualized language or imagery and unwelcome sexual
attention or advances
- Trolling, insulting/derogatory comments, and personal or political
attacks
- Public or private harassment
- Publishing others’ private information, such as a physical or
electronic address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting

Our Responsibilities
--------------------

Project maintainers are responsible for clarifying the standards of
acceptable behavior and are expected to take appropriate and fair
corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit,
or reject comments, commits, code, wiki edits, issues, and other
contributions that are not aligned to this Code of Conduct, or to ban
temporarily or permanently any contributor for other behaviors that they
deem inappropriate, threatening, offensive, or harmful.

Scope
-----

This Code of Conduct applies both within project spaces and in public
spaces when an individual is representing the project or its community.
Examples of representing a project or community include using an
official project e-mail address, posting via an official social media
account, or acting as an appointed representative at an online or
offline event. Representation of a project may be further defined and
clarified by project maintainers.

Enforcement
-----------

Instances of abusive, harassing, or otherwise unacceptable behavior may
be reported by contacting the project team at pombredanne@gmail.com
or on the Gitter chat channel at https://gitter.im/aboutcode-org/discuss .
All complaints will be reviewed and investigated and will result in a
response that is deemed necessary and appropriate to the circumstances.
The project team is obligated to maintain confidentiality with regard to
the reporter of an incident. Further details of specific enforcement
policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in
good faith may face temporary or permanent repercussions as determined
by other members of the project’s leadership.

Attribution
-----------

This Code of Conduct is adapted from the `Contributor Covenant`_ ,
version 1.4, available at
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

.. _Contributor Covenant: https://www.contributor-covenant.org
12 changes: 12 additions & 0 deletions purldb-toolkit/NOTICE
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#
# Copyright (c) nexB Inc. and others. All rights reserved.
# purldb is a trademark of nexB Inc.
# SPDX-License-Identifier: Apache-2.0 AND CC-BY-SA-4.0
# purldb software is licensed under the Apache License version 2.0.
# purldb data is licensed collectively under CC-BY-SA-4.0.
# See https://www.apache.org/licenses/LICENSE-2.0 for the license text.
# See https://creativecommons.org/licenses/by-sa/4.0/legalcode for the license text.
#
# See https://github.com/nexB/purldb for support or download.
# See https://aboutcode.org for more information about nexB OSS projects.
#
129 changes: 125 additions & 4 deletions purldb-toolkit/README.rst
Original file line number Diff line number Diff line change
@@ -1,14 +1,135 @@
PurlDB toolkit
purldb-toolkit
==============
[To come.]

purldb-toolkit is command line utility and library to use the PurlDB, its API and various related libraries.

The ``purlcli`` command acts as a client to the PurlDB REST API end point(s) to expose PURL services.
It serves both as a tool, as a library and as an example on how to use the services programmatically.


Installation
------------

[To come.]
pip install purldb-toolkit


Usage
-----

[To come.]
Use this command to get basic help::

$ purlcli --help
Usage: purlcli [OPTIONS] COMMAND [ARGS]...

Return information from a PURL.

Options:
--help Show this message and exit.

Commands:
metadata Given one or more PURLs, for each PURL, return a mapping of...
urls Given one or more PURLs, for each PURL, return a list of all...
validate Check the syntax of one or more PURLs.
versions Given one or more PURLs, return a list of all known versions...


And the following subcommands:

- Validate a PURL::

$ purlcli validate --help
Usage: purlcli validate [OPTIONS]

Check the syntax of one or more PURLs.

Options:
--purl TEXT PackageURL or PURL.
--output FILENAME Write validation output as JSON to FILE. [required]
--file FILENAME Read a list of PURLs from a FILE, one per line.
--help Show this message and exit.


- Collect package versions for a PURL::

$ purlcli versions --help
Usage: purlcli versions [OPTIONS]

Given one or more PURLs, return a list of all known versions for each PURL.

Version information is not needed in submitted PURLs and if included will be
removed before processing.

Options:
--purl TEXT PackageURL or PURL.
--output FILENAME Write versions output as JSON to FILE. [required]
--file FILENAME Read a list of PURLs from a FILE, one per line.
--help Show this message and exit.


- Collect package metadata for a PURL::

$ purlcli metadata --help
Usage: purlcli metadata [OPTIONS]

Given one or more PURLs, for each PURL, return a mapping of metadata fetched
from the fetchcode package.py info() function.

Options:
--purl TEXT PackageURL or PURL.
--output FILENAME Write meta output as JSON to FILE. [required]
--file FILENAME Read a list of PURLs from a FILE, one per line.
--unique Return data only for unique PURLs.
--help Show this message and exit.


- Collect package URLs for a PURL::

$ purlcli urls --help
Usage: purlcli urls [OPTIONS]

Given one or more PURLs, for each PURL, return a list of all known URLs
fetched from the packageurl-python purl2url.py code.

Options:
--purl TEXT PackageURL or PURL.
--output FILENAME Write urls output as JSON to FILE. [required]
--file FILENAME Read a list of PURLs from a FILE, one per line.
--unique Return data only for unique PURLs.
--head Validate each URL's existence with a head request.
--help Show this message and exit.


Funding
-------

This project was funded through the NGI Assure Fund https://nlnet.nl/assure, a
fund established by NLnet https://nlnet.nl/ with financial support from the
European Commission's Next Generation Internet programme, under the aegis of DG
Communications Networks, Content and Technology under grant agreement No 957073.

This project is also funded through grants from the Google Summer of Code
program, continuing support and sponsoring from nexB Inc. and generous
donations from multiple sponsors.


License
-------

Copyright (c) nexB Inc. and others. All rights reserved.

purldb is a trademark of nexB Inc.

SPDX-License-Identifier: Apache-2.0 AND CC-BY-SA-4.0

purldb software is licensed under the Apache License version 2.0.

purldb data is licensed collectively under CC-BY-SA-4.0.

See https://www.apache.org/licenses/LICENSE-2.0 for the license text.

See https://creativecommons.org/licenses/by-sa/4.0/legalcode for the license text.

See https://github.com/nexB/purldb for support or download.

See https://aboutcode.org for more information about nexB OSS projects.

Loading
Loading