usds/us-forms-system

Get Phase 1 of this project listed on code.gov

fatima-gov opened this issue · 8 comments

Objective: Make our project available on code.gov, which serves as the primary tool for discovering custom-developed code intended both for Government-wide reuse and for release as OSS. To publish our code to this inventory, we need to create a code.json file that lives in the root directory of our repo. (Please note this objective is also in alignment with the Federal Source Policy).

File must include a single object represented as JSON, with key-value pairs according to the list below

Required fields:

  • version: [string] Code.gov’s version of the metadata schema in use. Implements semantic versioning 2.0.0 rules as defined at http://semver.org. For example "2.0.0."

  • measurementType: [object] An object containing description of the open source measurement method.
    method: [enum] An enumerated list of methods for measuring the open source requirement.
    cost: Cost of software development.
    systems: System certification and accreditation boundaries.
    projects: A complete software solution / project.
    modules: A self-contained module from a software solution.
    linesOfCode: Source lines of code.
    other: Another measurement method not referenced above.
    ifOther: [string] A one- or two- sentence description of the measurement type used, if 'other' is selected as the value of 'method' field.

  • agency: [string] The agency acronym for Clinger Cohen Act (CCA) agencies can be found through the CFO Act list, as CCA references the CFO Act. For example "GSA" or "DOD." Please use uppercase letters.

  • releases: [array] Contains objects representing each versioned source code release made available.
    name: [string] The name of the release.
    repositoryURL: [string] The URL of the public release repository for open source repositories. This field is not required for repositories that are only available as government-wide reuse or are closed (pursuant to one of the exemptions).
    description: [string] A one- or two-sentence description of the release.
    permissions: [object] An object containing description of the usage/restrictions regarding the release.
    licenses: [null or array of objects] An object containing license details, if available. If not, null should be used.
    URL: [string] The URL of the release license, if available.
    name: [string] An abbreviation for the name of the license. For example, 'CC0' or 'MIT.'
    usageType: [enum] A list of enumerated values which describes the usage permissions for the release.
    openSource: Open source
    governmentWideReuse: Government-wide reuse.

  • laborHours: [number] An estimate of total labor hours spent by your organization/component across all versions of this release. This includes labor performed by federal employees and contractors. See the Code.gov summary for calculating labor hours.

  • tags: [array] An array of keywords that will be helpful in discovering and searching for the release. For example: feature, image processing, tool, integration, accessibility, 508, geospatial, map, etc.

  • contact: [object] Information about contacting the release.
    email: [string] An email address to contact the release.

  • date: [object] A date object describing the release.
    created: [string] The date the release was originally created, in YYYY-MM-DD or ISO 8601 format.
    lastModified: [string] The date the release was modified, in YYYY-MM-DD or ISO 8601 format.
    metadataLastUpdated: [string] The date the metadata of the release was last updated, in YYYY-MM-DD or ISO 8601 format.

Optional fields for release objects within releases:

  • version: [string] The version for this release. For example, "1.0.0."

  • organization: [string] The organization or component within the agency that the releases listed belong to. For example, "OMB" or "Navy."

  • status: [string] The development status of the release.
    "Ideation" - brainstorming phase.
    "Development" - a release is still in development.
    "Alpha" - initial prototyping phase and internal testing.
    "Beta" - a release is being tested in public.
    "Release Candidate" - a release is nearly ready for production.
    "Production" - finished release, with development and maintenance ongoing.
    "Archival" - finished release, but no longer actively maintained.

  • vcs: [string] A lowercase string with the name of the version control system that is being used for the release. For example: git, cvs, svn, mercurial, vss, etc.

  • homepageURL: [string] The URL of the public release homepage.

  • downloadURL: [string] The URL where a distribution of the release can be found.

  • disclaimerText: [string] Short paragraph that includes disclaimer language to accompany the release.

  • disclaimerURL: [string] The URL where disclaimer language regarding the release can be found.

  • languages: [array] A list of strings with the names of the programming languages in use on the release.

  • partners: [array] An array of objects including an acronym for each agency partnering on the release and the contact email at such agency.
    name: [string] The acronym describing the partner agency. email`: [string] The email address for the point of contact at the partner agency.

  • relatedCode: [array] An array of affiliated government repositories that may be a part of the same project. For example, relatedCode for 'code-gov-web' would include 'code-gov-api' and 'code-gov-tools'.
    name: [string] The name of the code repository, project, library or release.
    URL: [string] The URL where the code repository, project, library or release can be found.
    isGovernmentRepo: [boolean] True or False. Is the code repository owned or managed by a federal agency?

  • reusedCode: [array] An array of government source code, libraries, frameworks, APIs, platforms or other software used in this release. For example: US Web Design Standards, cloud.gov, Federalist, Digital Services Playbook, Analytics Reporter.
    name: [string] The name of the software used in this release.
    URL: [string] The URL where the software can be found.

@fatima-gov Can you take a crack at the info here in the comments so I can review? Thanks!!!

Yes, certainly!

Roger that! Let's loop in Froi if we need to!

@jcmeloni-usds Can you please review this file here https://github.com/usds/source-code-inventory/pull/1? Please feel free to make in-line edits as necessary. I created a separate repo under our org for code.gov to pull the metadata (this also protects our repo and allows us to add future projects to code.gov).

Once the file is ready, we'll need to add it usds.gov where code.gov will harvest the data.

Also, not sure if Froi is still there. I have been mostly talking to Ricardo Reyes (OS director for code.gov).

quick update here:

The metadata schema file is ready (pasted below). @nacingov is helping add the code.json to usds.gov (hopefully by tomorrow). There is a corresponding issue open on code-gov-api repo to add our agency to their list and harvest the code.json.

{

 
"version":
"2.0.0",
 
"agency":
"United States Digital Service (USDS)",
 
"measurementType" : {"method":
"projects"},
 
"releases": [
 
{
 
"organization":"USDS",
 
"name":
"U.S. Forms System",
 
"repositoryURL":
"https://github.com/usds/us-forms-system",
 
"description":
"The U.S Forms System is an open source code library for building complex web-based forms faster using React. This library incorporates the U.S. Web Design System and builds on the Department of VA's extension of React JSON Schema Form.",
 
"tags": ["US Forms System","USFS","Forms","JSON Schema","RJSF","USDS"],
 
"contact": {"email":
"forms@usds.lists.gov","name":
"US Forms System"},
 
"status":
"Development",
 
"vcs":
"git",
 
"languages": ["React",
"CSS",
"JavaScript"],
 
"permissions":
 
{
 
"licenses": [{
 
"URL":
"https://github.com/usds/us-forms-system/blob/master/LICENSE.md",
 
"name":
"CC0"}],
 
"usageType":
"openSource"
 
},
 
"relatedCode":[{
 
"name":"US Forms System Starter App",
 
"URL":"https://github.com/usds/us-forms-system-starter-app",
 
"isGovernmentRepo":true
 
}],
 
"reusedCode":[{
 
"name":"The U.S. Web Design System",
 
"URL":"https://github.com/uswds/uswds"
 
},
 
{
 
"name":"Vets.gov JSON Schema",
 
"URL":"https://github.com/department-of-veterans-affairs/vets-json-schema"
 
}],
 
"laborHours":
0,
 
"date": {
 
"created":
"2018-09-24",
 
"lastModified":
"2018-10-01",
 
"metadataLastUpdated":
""
 
}
 
}]
 
}

Added above metadata to EOP code.json. Let me know if there are any issues.

@LarryLambert - Thanks adding. Just reviewed - looks good.

@nacingov - no need to add this to USDS anymore, it will be available via https://raw.githubusercontent.com/EOP-OMB/code_json/master/code.json as all projects are being listed at the component level (OMB for us).

At this time, this file can be updated with a PR in https://github.com/EOP-OMB/code_json.