finos / metadata-tool

A command line tool for performing various tasks with Fintech Open Source Foundation (FINOS) metadata.
Apache License 2.0
12 stars 5 forks source link
cli clojure finos internal metadata

[!WARNING]
This project is now archived, since FINOS now uses LFX to manage contributors and projects metadata

Build Status Open Issues Average time to resolve an issue Dependencies Status License

metadata tool

A command line tool for performing various tasks with Fintech Open Source Foundation (FINOS) metadata.

Installation

For now the metadata tool is available in source form only, so fire up your favourite git client and get cloning!

The gen-meeting-roster-data command uses Chrome headless driver and therefore requires the same version of Chrome and Chrome driver to be installed and available in your $PATH.

To validate chromedriver installation, run:

which chromedriver
chromedriver --version

Configuration

metadata tool is configured via a single EDN file that's specified on the command line. This configuration file contains credentials for GitHub, Bitergia, and the tool's email account (used for sending email reports).

The following environment variables must be set, before invoking a metadata-tool command:

See the default config.edn file for details.

The gen-meeting-roster-data command relies on one additional configuration file, meeting-crawler.edn, which is expected to reside in the root folder of the metadata project; below is a confiuration example.

{
    :skip-pages ["template" "archive" "YYYY-MM-DD" "DRAFT" "(cancelled)" "Copy of" "IGNORE"]
    :years ["2019" "2018" "2017" "2016"]
    :ignore-names ["Individual's name" "Other Attendees" "FINOS Foundation" "TBD"]
    :remove-from-names ["(PMC Lead)" "(Observer)" "(Chair)" "(Call-in User)" "(Deactivated)"]
    :acronyms {
        "Mao Pillitu" "Maurizio Pillitu"
        "Gab Columbro" "Gabriele Columbro"
    }
}

This file is loaded using the aero library, which offers quite a bit of flexibility around how values are specified in the file (they can be read from environment variables, for example). See the aero documentation for details.

Logging Configuration

metadata tool uses the logback library for logging, and ships with a reasonable default logback.xml file. Please review the logback documentation if you wish to override this default logging configuration.

Usage

For now, the metadata tool should be run via Leiningen:

$ lein run -- -h
Runs one or more metadata tools.

Usage: metadata-tool [options] tool [tool] ...

Options:
  -c, --config-file FILE              Path of configuration file (optional, defaults to 'config.edn' in the classpath)
  -m, --metadata-directory DIRECTORY  Path of local metadata directory (optional, metadata will be checked out from GitHub if not specified)
  -p, --projects-directory DIRECTORY  Path of local (toplevel) projects metadata directory (optional, metadata will be checked out from GitHub if not specified)
  -r, --github-revision REVISION      GitHub revision of the metadata repository to checkout and use (optional, defaults to latest)
      --email-override                Overrides the default email behaviour of using a test email address for all outbound emails (DO NOT USE UNLESS YOU REALLY KNOW WHAT YOU'RE DOING!).
  -h, --help

Available tools:
<list of currently available tools is displayed here - this list will change as new tools are developed>

Developer Information

GitHub project

Bug Tracker

Branching Structure

This project has two permanent branches called master and dev. master is a GitHub protected branch and cannot be pushed to directly - all pushes (from project team members) and pull requests (from the wider community) must be made against the dev branch. The project team will periodically merge outstanding changes from dev to master.

Contributing

  1. Fork it (https://github.com/yourname/yourproject/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Read our contribution guidelines and Community Code of Conduct
  4. Commit your changes (git commit -am 'Add some fooBar')
  5. Push to the branch (git push origin feature/fooBar)
  6. Create a new Pull Request

NOTE: Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool. Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.

Need an ICLA? Unsure if you are covered under an existing CCLA? Email help@finos.org

License

Copyright 2017 Fintech Open Source Foundation

Distributed under the Apache License, Version 2.0.

SPDX-License-Identifier: Apache-2.0

3rd Party Licenses

To see the full list of licenses of all third party libraries used by this project, please run:

$ lein licenses :csv | cut -d , -f3 | sort | uniq

To see the dependencies and licenses in detail, run:

$ lein licenses