Skip to content

Commit db2a58f

Browse files
committed
Merge branch 'adlnet/master'
2 parents 4ad6b82 + 1155c3b commit db2a58f

16 files changed

+8989
-5086
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
~$*
22
*.html
33
.DS_Store
4+
*.swp

CONTRIBUTING.md

Lines changed: 387 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 35 additions & 158 deletions
Original file line numberDiff line numberDiff line change
@@ -1,172 +1,49 @@
1-
xAPI-Spec
2-
=========
1+
# xAPI-Spec
32

4-
# Workflow for Editing the Experience API Specification
3+
This Github repository contains the xAPI Specification. xAPI is a learning
4+
technologies interoperability specification that describes communication
5+
about learner activity and experiences between technologies. The specification is
6+
divided into three documents:
57

6-
## Set up
7-
If you are not currently working with GitHub and git, follow these set up steps
8-
first. GitHub provides excellent help at [https://help.github.com/articles/set-up-git](https://help.github.com/articles/set-up-git)
8+
* Part One: [About the Experience API](./xAPI-About.md#partone)
9+
* Part Two: [Experience API Data](./xAPI-Data.md#parttwo)
10+
* Part Three: [Data Processing, Validation, and Security](./xAPI-Communication.md#partthree)
911

10-
### Sign up for a GitHub account
11-
If you do not already have a GitHub account, [sign up](https://github.com/signup/free).
12+
## Specification versions
1213

14+
The current version of the specification is
15+
[1.0.3](https://github.com/adlnet/xAPI-Spec/).
1316

14-
### Fork the ADL repository
15-
Go to the Experience API repository. Fork the repository to your own account using
16-
the "Fork" button on the top right of Experience API repository page. This makes a
17-
copy of the Experience API repository. This fork gives you the ability to edit your
18-
version of the document without impacting the master copy.
17+
The next version of the specification has not been planned.
1918

19+
## What to do if the spec is unclear
2020

21-
### Install Git (use cmd line) or Install Windows/Mac GitHub client
22-
You need to install Git to work with a GitHub repository. If you are on a Windows machine, you can download the GitHub client app. If you use a Mac you can download the GitHub client app but will also have to download git to add a remote to the master repository. Otherwise install git from the
23-
git site.
21+
If when implementing the specification you find something is unclear or
22+
unhelpful, you can help to improve the specification by
23+
[raising an issue here](https://github.com/adlnet/xAPI-Spec/issues). When
24+
raising an issue, please give as much detail as you can in regards to:
2425

25-
__Git__
26-
This provides a command line client app for working with a git repository (like
27-
GitHub)
28-
Download and run [git install](http://git-scm.com/downloads)
26+
* Which part/parts of the specification you are reading.
27+
* Your understanding of what these parts mean.
28+
* The product and feature you are implementing xAPI in; what's the use case you
29+
are trying to achieve?
30+
* How you would like the specification to be improved. Suggest some specific new
31+
wording if you like!
2932

30-
__GitHub Client__
31-
GitHub Client provides a GUI interface to simplify working with a repository on
32-
GitHub. This does not currently support synchronizing with a master repository so
33-
some commands will still need to be completed using the command line.
33+
You'll need to [sign up for a GitHub account](https://github.com/signup/free) if
34+
you do not already have one in order to raise and comment on issues.
3435

35-
__Mac:__ http://mac.github.com/
36-
__Windows:__ http://windows.github.com/
36+
You can discuss any issues before or after raising them on the
37+
[specification Google Group](https://groups.google.com/a/adlnet.gov/forum/#!forum/xapi-spec)
38+
and at our
39+
[weekly specification calls](https://attendee.gotowebinar.com/register/7730918418468686596).
3740

41+
## How you can contribute
3842

39-
### Clone your GitHub fork to your machine
40-
To make edits and work on the files in the repository, clone your repository to
41-
your local machine using Git. The url is provided on the home page of your
42-
repository (ex. ```https://github.com/<your username>/xAPI-Spec/```)
43+
You'll need to [sign up for a GitHub account](https://github.com/signup/free) if
44+
you do not already have one in order to contribute to the specification.
4345

44-
__Git__
45-
```git clone https://github.com/<your username>/xAPI-Spec/>```
46+
The xAPI Spec Working Group meets
47+
the first, second, and third Wednesdays of each month on GoToWebinar. You can register at [https://attendee.gotowebinar.com/register/7730918418468686596](https://attendee.gotowebinar.com/register/7730918418468686596)
4648

47-
__GitHub Client__
48-
On the home screen of the client app, select your account under 'github' and
49-
choose the repository you want to clone. Selecting the repository from the list
50-
gives you an option to clone it.
51-
52-
### Add ADL repository as upstream remote
53-
Add a remote repository to git to reference the master repository. This will make
54-
synchronizing with the master respository a bit easier.
55-
56-
__Git__
57-
```git remote add upstream https://github.com/adlnet/xAPI-Spec```
58-
59-
__GitHub Client__
60-
Currently the GitHub clients don't have a way to synchronize with the master
61-
repository. In order to do this, open your repository on the GitHub client
62-
app home screen. On the repository screen select 'tools' and 'open a shell
63-
here'. Alternatively use the 'Git Shell' shortcut if it was created during
64-
installation. **NOTE:** If you're using a Mac there is no shell shortcut so navigate to ```/your/repo/path/xAPI-Spec``` then follow the shell instructions.
65-
66-
In the shell, enter..
67-
```git remote add upstream https://github.com/adlnet/xAPI-Spec```
68-
69-
70-
## Workflow
71-
72-
### Sync up with Master ADL Repository
73-
Pull down changes from the master repository. This automatically does a
74-
fetch of the master repository and a merge into your local repository.
75-
76-
__Git and GitHub Client__
77-
```git pull upstream master```
78-
79-
### Make Changes Locally
80-
Edit the local copy of the file, save and commit. Rule of thumb: Use commits
81-
like save points. Commit to indicate logical groups of edits, and places
82-
where the edits could be safely rolled back.
83-
84-
__Git__
85-
```git commit -a -m "<commit message>"```
86-
87-
__GitHub Client__
88-
The GitHub client will detect saved changes to the documents in your
89-
local repository and present a button to commit your edits at the top
90-
right of the repository screen.
91-
92-
### Push Changes to Your Repository (Origin)
93-
Pushing your changes to your remote GitHub repository stages the files
94-
so that you can then make requests to the master repository to merge in
95-
your changes.
96-
97-
__Git__
98-
```git push origin```
99-
100-
__GitHub Client__
101-
The GitHub client has a 'sync' button at the top of the repository screen.
102-
This will synchronize your local and remote (origin) repository.
103-
104-
### Submit a Pull Request to Master ADL Repository (Upstream)
105-
When you forked from the Experience API repository, a link back to the master
106-
repository is remembered. To send your changes back the the master repository,
107-
click the "Pull Request" button at the top of your repository page. This will
108-
direct you to a page that gives you the ability to submit a request to the
109-
master repository to merge in the changes you committed.
110-
111-
##Style Guide
112-
### Expected Values
113-
114-
If a specific data format and value are to be used, the ```code``` style should be used to denote this.
115-
116-
For example:
117-
118-
A list of item ids is delimited by ```[,]```
119-
120-
And
121-
122-
The value returned must be ```false```.
123-
124-
### Property and object names
125-
126-
When refering to a property, parameter or object, but not specifically calling it out as property, parameter, or object
127-
the name should be capitalized. No formatting or quotes should be used.
128-
129-
For example:
130-
131-
Context Activities within the Context of the Statement are awesome.
132-
133-
When a specific type is called out, Double quotes should be used (e.g. properties, parameters, and objects). When used within quotes, the capitalization should match that actually used in the object being described.
134-
135-
For example:
136-
137-
You can use "category" Context Activities to denote the recipe being followed in crafting the statement.
138-
139-
And
140-
141-
The "member" property is an un-ordered list!
142-
143-
When a value is expected or described within plain text, but isn't specifically code, single quotes should be used.
144-
In situations where it is important to group text to be specific to the concept, single quotes should also be used.
145-
Single quotes are also allowable if the text would be unclear due to certain property names. Basically, single quotes
146-
are the catch-all for any case where not having any clarifying punctuation or style would cause confusion.
147-
148-
For example:
149-
150-
The reserved Verb 'http://adlnet.gov/expapi/verbs/voided' is an exception.
151-
152-
And
153-
154-
These additional properties are called ‘interaction component lists’
155-
156-
And
157-
158-
The Score Object SHOULD include 'scaled'
159-
160-
And
161-
162-
The 'binary' value should be used.
163-
164-
### Headings
165-
Hashes (#) should be used for all headings following the following format:
166-
167-
# Experience API (1 hash)
168-
## 1 Statement (2 hashes)
169-
### 1.1 Top level property (3 hashes)
170-
#### 1.1.1 next level (4 hashes)
171-
##### 1.1.1.1 next level and any deeper levels (5 hashes)
172-
###### Rationale, details etc. (6 hashes)
49+
Please refer to the [Contribution guidelines](CONTRIBUTING.md) for further direction and a list of contributors.

0 commit comments

Comments
 (0)