about_yml 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9e886892791e64f6563961ccd4ea3be6aac83e46
4
- data.tar.gz: 16dee9cd1470bc6dc4cc5d0a369d378d25e2bdce
3
+ metadata.gz: 6a26a63746b2e58de3584dbee54db450d1b63528
4
+ data.tar.gz: 112da4095c5c05b95f3e962bcb161ce4463296c4
5
5
  SHA512:
6
- metadata.gz: b0498b4e2cee6a69fcfccffe1f2c2a10ebc69cbc07577708f2641ca093db562e5c4ef8c92ee5c1ab6e42482da392daa3a672a7340d81dd508364bdd1e8785afb
7
- data.tar.gz: 5d9ba107575208aaa686abe654115e41ddce6a0bede93902632748c5b07ed10c30d8af711274fbb28732735d024b1e44aab2f0f1aeaa552c3f8e2a7f885b08aa
6
+ metadata.gz: 77dd208381be15190a557d7ec3aa20e3c39462470f4d9af35418e73b0911aeb55d87858f8860233c6ecfc76b0f3026c17c7f737ec50a848bebefe0f95493fcd1
7
+ data.tar.gz: a3c75fc5809baa0c0df4e471f3a5140611fd4650ed869cb14a43bdc99ababf569edcc1511ae830a7791685bf9f10edbcd5bee4a7d0319c18165230562ca086a1
data/README.md CHANGED
@@ -87,6 +87,168 @@ a small, handy program that also uses the
87
87
  It will return a YAML list of names and descriptions for all of the
88
88
  repositories belonging to an organization.
89
89
 
90
+ ## `.about.yml` file testing
91
+
92
+ The `run_about_yml_check` Rake task provides a relatively simple way to check
93
+ a project's `.about.yml` file for errors.
94
+
95
+ ### Add the task to your Rakefile
96
+
97
+ To test whether the `.about.yml` file for a repository will successfully parse
98
+ based on the schema, simply include the `about_yml` gem in your dependencies and
99
+ then load the task in your Rakefile:
100
+
101
+ ```ruby
102
+ check_yml = Gem::Specification.find_by_name 'about_yml'
103
+ load "#{check_yml.gem_dir}/lib/about_yml/tasks/check_about_yml.rake"
104
+ ```
105
+
106
+ If your project already include `about_yml`, make sure it is using version 0.0.8
107
+ or later.
108
+
109
+ ### Run the task automatically with Travis
110
+
111
+ To run the `run_about_yml_check` task automatically using Travis, simply add
112
+ the following to your `.travis.yml` config file (with any preferred
113
+ notifications):
114
+
115
+ ```yml
116
+ script: bundle exec rake run_about_yml_check
117
+ ```
118
+
119
+
120
+ ## `.about.yml` cheat sheet
121
+ The following attributes are currently stored in the `.about.yml` file and are used in one or more of the locations referenced above. Required attributes are marked with an asterisk, and field descriptions and examples follow each attribute. Take a look at [Every Kid in a Park](https://github.com/18F/ekip-api/blob/master/.about.yml) or [Open Opportunities](https://github.com/18F/openopps-platform/blob/dev/.about.yml) for living examples of `.about.yml` in action.
122
+
123
+
124
+ `name`* - This is a short name of your project that is used as a URL slug on the 18F dashboard.
125
+ >
126
+ ```yml
127
+ name: ekip-api
128
+ ```
129
+
130
+ `full_name`* - This is the display name of your project on the 18F dashboard.
131
+ >
132
+ ```yml
133
+ full_name: Every Kid in a Park
134
+ ```
135
+
136
+ `description`* - What is the problem your project solves? What is the solution? Use the format shown below. The #dashboard team will gladly help you put this together for your project.
137
+ >
138
+ ```yml
139
+ description: |
140
+ In 2015, President Obama formally announced the Every Kid in a Park program, which provides
141
+ fourth graders and their families with free access to more than 2,000 federally managed sites.
142
+ 18F worked with the Department of the Interior to create the program’s website, which was
143
+ written at a fourth grade level with the help of fourth graders.
144
+ ```
145
+
146
+ `impact`* - What is the measurable impact of your project? Use the format shown below. The #dashboard team will gladly help you put this together for your project.
147
+ >
148
+ ```yml
149
+ impact: |
150
+ We designed a website that gives fourth graders and their families free access to more than 2,000
151
+ federally-managed sites.
152
+ ```
153
+
154
+ `owner_type`* - What kind of team owns the repository? *Accepted values: guild, working-group, project*
155
+ >
156
+ ```yml
157
+ owner_type: project
158
+ ```
159
+
160
+ `stage`* - What is your project's current status? *Accepted values: discovery, alpha, beta, live*
161
+ >
162
+ ```yml
163
+ stage: live
164
+ ```
165
+
166
+ `testable`* - Should this repo have automated tests? If so, set to `true`. *Accepted values: true, false*
167
+ >
168
+ ```yml
169
+ testable: true
170
+ ```
171
+
172
+ `licenses`* - What are the licences that apply to the project and/or its components? Get the license name from the [Software Package Data Exchange (SPDX)] (https://spdx.org/licenses/)
173
+ >
174
+ ```yml
175
+ licenses:
176
+ ekip-api:
177
+ name: CC0-1.0
178
+ url: https://github.com/18F/team_api/blob/master/LICENSE.md
179
+ ```
180
+
181
+ `partners` - Who is the parter for your project? (Use the full name of the partner documented [here](https://github.com/18F/dashboard/blob/staging/_data/partners.yml))
182
+ >
183
+ ```yml
184
+ partners:
185
+ - U.S. Department of the Interior
186
+ ```
187
+
188
+ `contact` - The main point of contact(s) for your project, and a `mailto:` link for that contact.
189
+ >
190
+ ```yml
191
+ contact:
192
+ - url: mailto:shashank.khandelwal@gsa.gov
193
+ text: Shashank Khandelwal
194
+ ```
195
+
196
+ `team` - Who are the team members on your project? For each team member, list a github name, role and an internal identifier. (The project lead role should be `lead`)
197
+ >
198
+ ```yml
199
+ team:
200
+ - github: khandelwal
201
+ role: lead
202
+ id: khandelwal
203
+ ```
204
+
205
+ `type` - What kind of content is contained in the project repository? *Accepted values: app, docs, policy*
206
+ >
207
+ ```yml
208
+ type: app
209
+ ```
210
+
211
+ `parent` - Name of the main project repo if this is a sub-repo; name of the working group/guild repo if this is a working group/guild subproject
212
+ >
213
+ ```yml
214
+ parent: [GitHub repo name]
215
+ ```
216
+
217
+ `links` - What are the key links associated with your project?
218
+ >
219
+ ```yml
220
+ links:
221
+ - url: everykidinapark.gov
222
+ text: Every Kid in a Park
223
+ ```
224
+
225
+ `blogTag` - What is the 18F blog tag for your project? You can find a list of tags [here](https://18f.gsa.gov/tags/)
226
+ >
227
+ ```yml
228
+ blogTag: [18F Blog Tag]
229
+ ```
230
+
231
+ `stack` - What technologies are used in this project?
232
+ >
233
+ ```yml
234
+ stack:
235
+ - Django
236
+ ```
237
+
238
+ `services` - What are the services used to supply project status information?
239
+ >
240
+ ```yml
241
+ services:
242
+ - name: Coveralls
243
+ category: Build review
244
+ url: https://coveralls.io/github/18F/ekip-api?branch=master
245
+ badge: https://coveralls.io/repos/18F/ekip-api/badge.svg?branch=master&service=github
246
+ - name: Quantified Code
247
+ category: Site review
248
+ url: https://www.quantifiedcode.com/app/project/ecb305ac0bfa4e968192621402faface
249
+ badge: https://www.quantifiedcode.com/api/v1/project/ecb305ac0bfa4e968192621402faface/badge.svg
250
+ ```
251
+
90
252
  ## Public domain
91
253
 
92
254
  This project is in the worldwide [public domain](LICENSE.md). As stated in [CONTRIBUTING](CONTRIBUTING.md):
@@ -6,127 +6,127 @@
6
6
  "properties": {
7
7
  "name": {
8
8
  "type": "string",
9
- "description": "Short name that acts as the project identifier"
9
+ "description": "This is a short name of your project that can be used as a URL slug."
10
10
  },
11
11
  "full_name": {
12
12
  "type": "string",
13
- "description": "Full proper name of the project"
13
+ "description": "This is the display name of your project."
14
14
  },
15
- "type": {
15
+ "description": {
16
16
  "type": "string",
17
- "description": "The type of content in the repo",
18
- "enum": ["app", "docs", "policy"]
17
+ "description": "What is the problem your project solves? What is the solution? Use the format shown below. The #dashboard team will gladly help you put this together for your project."
19
18
  },
20
- "owner_type": {
19
+ "impact": {
21
20
  "type": "string",
22
- "description": "Describes whether a project team, working group/guild, etc. owns the repo",
23
- "enum": ["guild", "working-group", "project"]
21
+ "description": "What is the measurable impact of your project? Use the format shown below. The #dashboard team will gladly help you put this together for your project."
24
22
  },
25
- "parent": {
23
+ "owner_type": {
26
24
  "type": "string",
27
- "description": "Name of the main project repo if this is a sub-repo; name of the working group/guild repo if this is a working group/guild subproject"
25
+ "description": "What kind of team owns the repository?",
26
+ "enum": ["guild", "working-group", "project"]
28
27
  },
29
28
  "stage": {
30
29
  "type": "string",
31
- "enum": ["discovery", "alpha", "beta", "live", "sunset", "transfer", "end"],
32
- "description": "Maturity stage of the project"
33
- },
34
- "description": {
35
- "type": "string",
36
- "description": "Description of the project"
37
- },
38
- "tags": {
39
- "type": "array",
40
- "description": "Tags that describe the project or aspects of the project",
41
- "items": {"type": "string"},
42
- "uniqueItems": true
30
+ "description": "MWhat is your project's current status?",
31
+ "enum": ["discovery", "alpha", "beta", "live"]
43
32
  },
44
33
  "testable": {
45
34
  "type": "boolean",
46
35
  "default": false,
47
36
  "description": "Should this repo have automated tests? If so, set to `true`."
48
37
  },
49
- "team": {
50
- "type": "array",
51
- "description": "Team members contributing to the project",
52
- "items": {
53
- "$ref": "#/definitions/person"
54
- },
55
- "uniqueItems": true
38
+ "licenses": {
39
+ "type": "object",
40
+ "description": "What are the licenses that apply to the project and/or its components?",
41
+ "patternProperties": {
42
+ ".*": {"$ref": "#/definitions/license"}
43
+ }
56
44
  },
57
45
  "partners": {
58
46
  "type": "array",
59
- "description": "Partners for whom the project is developed",
47
+ "description": "Who is the partner for your project? (Use the full name of the partner documented here: https://github.com/18F/dashboard/blob/staging/_data/partners.yml)",
60
48
  "items": {"type": "string"},
61
49
  "uniqueItems": true
62
50
  },
63
- "users": {
51
+ "contact": {
64
52
  "type": "array",
65
- "description": "Organizations or individuals who have adopted the project for their own use",
53
+ "description": "The main point of contact(s) and/or the issue reporting system for your project, and either a `mailto:` link or URL for each contact.",
66
54
  "items": {
67
- "$ref": "#/definitions/user"
55
+ "$ref": "#/definitions/contact"
68
56
  },
69
57
  "uniqueItems": true
70
58
  },
71
- "milestones": {
59
+ "team": {
72
60
  "type": "array",
73
- "description": "Brief descriptions of significant project developments",
74
- "items": {"type": "string"},
61
+ "description": "Who are the team members on your project? You can specify GitHub usernames, email addresses, or other organizational usernames.",
62
+ "items": {
63
+ "$ref": "#/definitions/person"
64
+ },
75
65
  "uniqueItems": true
76
66
  },
77
- "stack": {
67
+ "type": {
68
+ "type": "string",
69
+ "description": "What kind of content is contained in the project repository?",
70
+ "enum": ["app", "docs", "policy"]
71
+ },
72
+ "milestones": {
78
73
  "type": "array",
79
- "description": "Technologies used to build the project",
74
+ "description": "What are the key milestones you've achieved recently?",
80
75
  "items": {"type": "string"},
81
76
  "uniqueItems": true
82
77
  },
83
- "impact": {
78
+ "parent": {
84
79
  "type": "string",
85
- "description": "Brief description of the project's outcomes"
80
+ "description": "Name of the main project repo if this is a sub-repo; name of the grouplet repo if this is a working group/guild subproject"
86
81
  },
87
- "services": {
82
+ "links": {
88
83
  "type": "array",
89
- "description": "Services used to supply project status information",
84
+ "description": "What are the links to key artifacts associated with your project? e.g. the production site, documentation.",
90
85
  "items": {
91
- "$ref": "#/definitions/service"
86
+ "$ref": "#/definitions/link"
92
87
  },
88
+ "format": "uri",
93
89
  "uniqueItems": true
94
90
  },
95
- "licenses": {
96
- "type": "object",
97
- "description": "Licenses that apply to the project and/or its components",
98
- "patternProperties": {
99
- ".*": {"$ref": "#/definitions/license"}
100
- }
101
- },
102
91
  "blogTag": {
103
92
  "type": "array",
104
- "description": "Tag to use when blogging about this project",
93
+ "description": "What tags does your organization's blog associate with your project? You can find a list of 18F blog tags here: https://18f.gsa.gov/tags/",
105
94
  "items": {
106
95
  "type": "string"
107
96
  },
108
97
  "uniqueItems": true
109
98
  },
110
- "links": {
99
+ "stack": {
100
+ "type": "array",
101
+ "description": "What technologies are used in this project?",
102
+ "items": {"type": "string"},
103
+ "uniqueItems": true
104
+ },
105
+ "services": {
111
106
  "type": "array",
112
- "description": "Links to project artifacts",
107
+ "description": "What are the services used to supply project status information?",
113
108
  "items": {
114
- "$ref": "#/definitions/link"
109
+ "$ref": "#/definitions/service"
115
110
  },
116
- "format": "uri",
117
111
  "uniqueItems": true
118
112
  },
119
- "contact": {
113
+ "users": {
120
114
  "type": "array",
121
- "description": "URIs for points-of-contact",
115
+ "description": "Organizations or individuals who have adopted the project for their own use",
122
116
  "items": {
123
- "$ref": "#/definitions/contact"
117
+ "$ref": "#/definitions/user"
124
118
  },
125
119
  "uniqueItems": true
120
+ },
121
+ "tags": {
122
+ "type": "array",
123
+ "description": "Tags that describe the project or aspects of the project",
124
+ "items": {"type": "string"},
125
+ "uniqueItems": true
126
126
  }
127
127
  },
128
128
  "required": [
129
- "name", "full_name", "stage", "team", "licenses", "owner_type", "testable"
129
+ "name", "full_name", "description", "impact", "stage", "team", "licenses", "owner_type", "testable"
130
130
  ],
131
131
  "definitions": {
132
132
  "person": {
@@ -1,5 +1,5 @@
1
1
  # @author Mike Bland (michael.bland@gsa.gov)
2
2
 
3
3
  module AboutYml
4
- VERSION = '0.0.8'
4
+ VERSION = '0.0.9'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: about_yml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Bland
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-12-28 00:00:00.000000000 Z
12
+ date: 2016-01-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: safe_yaml