about_yml 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
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