Skip to content

Commit 557d2d2

Browse files
committed
Add contributing documentation (resolves #48)
Add code of conduct (resolves #49) Add building documentation
1 parent dc29642 commit 557d2d2

File tree

4 files changed

+302
-9
lines changed

4 files changed

+302
-9
lines changed

.github/CODE_OF_CONDUCT.md

+132
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our
6+
community a harassment-free experience for everyone, regardless of age, body
7+
size, visible or invisible disability, ethnicity, sex characteristics, gender
8+
identity and expression, level of experience, education, socio-economic status,
9+
nationality, personal appearance, race, caste, color, religion, or sexual identity
10+
and orientation.
11+
12+
We pledge to act and interact in ways that contribute to an open, welcoming,
13+
diverse, inclusive, and healthy community.
14+
15+
## Our Standards
16+
17+
Examples of behavior that contributes to a positive environment for our
18+
community include:
19+
20+
- Demonstrating empathy and kindness toward other people
21+
- Being respectful of differing opinions, viewpoints, and experiences
22+
- Giving and gracefully accepting constructive feedback
23+
- Accepting responsibility and apologizing to those affected by our mistakes,
24+
and learning from the experience
25+
- Focusing on what is best not just for us as individuals, but for the
26+
overall community
27+
28+
Examples of unacceptable behavior include:
29+
30+
- The use of sexualized language or imagery, and sexual attention or
31+
advances of any kind
32+
- Trolling, insulting or derogatory comments, and personal or political attacks
33+
- Public or private harassment
34+
- Publishing others' private information, such as a physical or email
35+
address, without their explicit permission
36+
- Other conduct which could reasonably be considered inappropriate in a
37+
professional setting
38+
39+
## Enforcement Responsibilities
40+
41+
Community leaders are responsible for clarifying and enforcing our standards of
42+
acceptable behavior and will take appropriate and fair corrective action in
43+
response to any behavior that they deem inappropriate, threatening, offensive,
44+
or harmful.
45+
46+
Community leaders have the right and responsibility to remove, edit, or reject
47+
comments, commits, code, wiki edits, issues, and other contributions that are
48+
not aligned to this Code of Conduct, and will communicate reasons for moderation
49+
decisions when appropriate.
50+
51+
## Scope
52+
53+
This Code of Conduct applies within all community spaces, and also applies when
54+
an individual is officially representing the community in public spaces.
55+
Examples of representing our community include using an official e-mail address,
56+
posting via an official social media account, or acting as an appointed
57+
representative at an online or offline event.
58+
59+
## Enforcement
60+
61+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
62+
reported to the community leaders responsible for enforcement at
63+
64+
All complaints will be reviewed and investigated promptly and fairly.
65+
66+
All community leaders are obligated to respect the privacy and security of the
67+
reporter of any incident.
68+
69+
## Enforcement Guidelines
70+
71+
Community leaders will follow these Community Impact Guidelines in determining
72+
the consequences for any action they deem in violation of this Code of Conduct:
73+
74+
### 1. Correction
75+
76+
**Community Impact**: Use of inappropriate language or other behavior deemed
77+
unprofessional or unwelcome in the community.
78+
79+
**Consequence**: A private, written warning from community leaders, providing
80+
clarity around the nature of the violation and an explanation of why the
81+
behavior was inappropriate. A public apology may be requested.
82+
83+
### 2. Warning
84+
85+
**Community Impact**: A violation through a single incident or series
86+
of actions.
87+
88+
**Consequence**: A warning with consequences for continued behavior. No
89+
interaction with the people involved, including unsolicited interaction with
90+
those enforcing the Code of Conduct, for a specified period of time. This
91+
includes avoiding interactions in community spaces as well as external channels
92+
like social media. Violating these terms may lead to a temporary or
93+
permanent ban.
94+
95+
### 3. Temporary Ban
96+
97+
**Community Impact**: A serious violation of community standards, including
98+
sustained inappropriate behavior.
99+
100+
**Consequence**: A temporary ban from any sort of interaction or public
101+
communication with the community for a specified period of time. No public or
102+
private interaction with the people involved, including unsolicited interaction
103+
with those enforcing the Code of Conduct, is allowed during this period.
104+
Violating these terms may lead to a permanent ban.
105+
106+
### 4. Permanent Ban
107+
108+
**Community Impact**: Demonstrating a pattern of violation of community
109+
standards, including sustained inappropriate behavior, harassment of an
110+
individual, or aggression toward or disparagement of classes of individuals.
111+
112+
**Consequence**: A permanent ban from any sort of public interaction within
113+
the community.
114+
115+
## Attribution
116+
117+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118+
version 2.1, available at
119+
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
120+
121+
Community Impact Guidelines were inspired by
122+
[Mozilla's code of conduct enforcement ladder][mozilla coc].
123+
124+
For answers to common questions about this code of conduct, see the FAQ at
125+
[https://www.contributor-covenant.org/faq][faq]. Translations are available
126+
at [https://www.contributor-covenant.org/translations][translations].
127+
128+
[homepage]: https://www.contributor-covenant.org
129+
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
130+
[mozilla coc]: https://github.com/mozilla/diversity
131+
[faq]: https://www.contributor-covenant.org/faq
132+
[translations]: https://www.contributor-covenant.org/translations

.github/CONTRIBUTING.md

+89
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# Contributing
2+
3+
Thank you for taking the time to contribute!
4+
5+
These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
6+
7+
**When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.** We have already laid out a plan of development and future goals for the tool, so it is important any development you may wish to do aligns with this direction.
8+
9+
Please note we have a code of conduct, please follow it in all your interactions with the project.
10+
11+
## How Can I Contribute?
12+
13+
There are many ways to contribute and not all of them involve coding.
14+
15+
- [Reporting bugs](#reporting-bugs)
16+
- [Suggesting features]()
17+
- [Contributing code]()
18+
19+
## Reporting bugs
20+
21+
### Before submitting a bug
22+
23+
- Ensure the bug was not already reported by searching on GitHub under [issues](https://github.com/airsdk/apm/issues). If it has and the issue is still open, add a comment to the existing issue instead of opening a new one;
24+
- Check the [discussions](https://github.com/airsdk/apm/discussions) for a list of common questions and problems;
25+
26+
### How to submit a bug
27+
28+
Bugs are tracked as [issues](https://github.com/airsdk/apm/issues/new) in GitHub. Explain the problem and include as much detail as possible to help maintainers reproduce the problem:
29+
30+
- Use a clear and descriptive title for the issue to identify the problem;
31+
- Describe the exact steps which reproduce the problem in as many details as possible. For example, start by listing the command used and any output to the terminal.;
32+
- Enable debugging outputs using the `-l` flag: `apm -l debug ...` , include the output while running this version of the command;
33+
- Describe the behavior you observed after following the steps and point out what exactly is the problem with that behavior;
34+
- Explain which behavior you expected to see instead and why;
35+
- Include details about your configuration and environment, including air sdk version, java version, the OS and version you are using;
36+
37+
## Suggesting features
38+
39+
A feature can be anything, from a minor change to an existing feature or a completely new command.
40+
41+
### Before submitting a feature
42+
43+
Before submitting a feature check the [issues](https://github.com/airsdk/apm/issues) and [discussions](https://github.com/airsdk/apm/discussions) for a similar feature discussion. If one exists add your thoughts to the existing discussion.
44+
45+
### How to submit a feature request
46+
47+
If you see a feature that is missing or you would like to see in the tool, please start a [discussion](https://github.com/airsdk/apm/discussions/new) on the topic. In your discussion outline the usage of the feature in as much detail as possible and how you see this benefiting the tool.
48+
49+
Do not open an issue on GitHub until you have collected positive feedback about the change. Once discussed and we all believe it is a good feature to add you can create an [issue](https://github.com/airsdk/apm/issues/new) (labelled as an enhancement):
50+
51+
- Use a clear and descriptive title for the issue to identify the suggestion;
52+
- Provide a step-by-step description of the suggested enhancement in as many details as possible;
53+
- Provide specific examples to demonstrate the steps;
54+
- Explain why this enhancement would be useful to most users;
55+
56+
## Contributing code
57+
58+
Before contributing code it's important that you have discussed the feature or are addressing an issue outstanding in the issues list.
59+
60+
If you don't know where to start have a look at the issues labelled [good first issue](https://github.com/airsdk/apm/labels/good%20first%20issue) or [help wanted](https://github.com/airsdk/apm/labels/help%20wanted). These should be the simpler issues or ones that we are asking for general feedback with.
61+
62+
### Fork the repository
63+
64+
Create a fork of the repository, and create a branch from the `develop` branch. The develop branch contains the current development state of apm. It should contain the most up-to-date code base.
65+
66+
### Local development
67+
68+
The apm tool can be developed locally. You can even run a [local apm repository](https://github.com/airsdk/apm-repository/) if you wish. To setup your development environment see the guide on [building]().
69+
70+
### Pull Requests
71+
72+
Once you have completed coding in your branch, create a PR from your fork to the `develop` branch in the apm repository. Never PR to the `main` branch, always to `develop`
73+
74+
Add a detailed description to the PR describing the changes you have made. It is important that you reference the github issue that this relates to.
75+
76+
The PR will then be reviewed and the reviewer(s) may ask you to complete additional work, tests, or other changes before your pull request can be ultimately accepted. If you have not followed the guidelines in this document your PR may be closed and not merged into the repository.
77+
78+
### Coding conventions
79+
80+
We follow the standard AS3 coding conventions and best practices as outlined [here](https://airsdk.dev/docs/development/coding-conventions).
81+
82+
Please ensure you follow these conventions in any code submissions and the following notes:
83+
84+
- Use tab indentation;
85+
- Use [Allman style](https://en.wikipedia.org/wiki/Indentation_style#Allman_style) braces;
86+
87+
#### Acknowledgements
88+
89+
Parts of this contributing guide were adapted from the [Contributing to Atom](https://github.com/atom/atom/blob/master/CONTRIBUTING.md) documentation.

BUILDING.md

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Building APM
2+
3+
Before attempting to modify the code, have a look at the contributing guidelines.
4+
5+
APM is built using the AIR SDK. See the documentation at [airsdk.dev](https://airsdk.dev) to setup the AIR SDK on your machine.
6+
7+
The command line utility output used by `apm` was only introduced recently in AIR so you need to ensure you have at least version 33.1.1.554 of the AIR SDK installed.
8+
9+
## AIR IDE
10+
11+
You can use any AIR IDE to develop this project. The `client` directory is the root of the application source tree. It contains the following key directories:
12+
13+
- `src`: All actionscript source code for `apm`;
14+
- `libs`: SWC's used by `apm`;
15+
16+
You should add the src directory as a source code directory and the libs directory as a swc directory to whatever IDE you are using. Set the output to an `out` directory underneath `client` to keep your build inline with the ant script.
17+
18+
## Ant
19+
20+
We have provided an ant build script `build.xml` that can be used to build the project.
21+
22+
Make a copy of the `build.config.example` file as `build.config` in your checkout. Edit the file and point the `air.sdk` property to the location of the AIR SDK on your machine. eg
23+
24+
```
25+
air.sdk = /Users/marchbold/sdks/air/AIR_33.1.1.554
26+
```
27+
28+
Run the bootstrap command to download the ant contrib utilities used by the build script:
29+
30+
```
31+
ant bootstrap
32+
```
33+
34+
Then you should be able to run ant to build `apm`:
35+
36+
```
37+
❯ ant
38+
Buildfile: /Users/marchbold/work/distriqt/airsdk/apm/source/build.xml
39+
40+
version_write:
41+
[copy] Copying 1 file to /Users/marchbold/work/distriqt/airsdk/apm/source/client/src/com/apm/client
42+
43+
build:
44+
[echo] Building apm...
45+
[mxmlc] Loading configuration: /Users/marchbold/work/sdks/air/current/frameworks/air-config.xml
46+
[mxmlc]
47+
[mxmlc]
48+
[mxmlc] 63502 bytes written to /Users/marchbold/work/distriqt/airsdk/apm/source/client/out/apm.swf in 1.604 seconds
49+
[mxmlc]
50+
[echo] Copying apm scripts...
51+
[copy] Copying 3 files to /Users/marchbold/work/distriqt/airsdk/apm/source/client/out
52+
[echo] done
53+
54+
BUILD SUCCESSFUL
55+
Total time: 2 seconds
56+
```
57+
58+
The output of this is the `client/out` directory. It should contain 4 files:
59+
60+
```
61+
- apm
62+
- apm.bat
63+
- apm.swf
64+
- apm.xml
65+
```
66+
67+
The first two files are the launch scripts for macOS and Windows respectively. `apm.xml` is the application descriptor for the `apm` utility.
68+
69+
## Testing
70+
71+
In order to test your local build, set the `AIR_TOOLS` environment variable that you would have set during installation of `apm` to point to the `client/out` directory. Or you can just run apm from the `client/out` directory directly.
72+
73+
Once you set this you should be able to run `apm` in your terminal and reference your locally built version.

README.md

+8-9
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
1-
2-
31
![](images/hero.png)
42

5-
63
# AIR Package Manager (`apm`)
74

8-
The AIR Package Manager allows management of AIR libraries and extensions and assists in creation of the application descriptor.
9-
10-
11-
It is comprised of a repository server and a command line client.
5+
The AIR Package Manager allows management of AIR libraries and extensions and assists in creation of the application descriptor.
126

7+
It is comprised of a repository server and a command line client. This repository forms the source of the command line client.
138

149
The goals of `apm` are to:
1510

@@ -18,9 +13,13 @@ The goals of `apm` are to:
1813
- install (download) packages and dependencies;
1914
- update packages and dependencies;
2015
- assist in the creation of the application descriptor (particularly on iOS / Android to merge android manifest additions and iOS info additions / entitlements );
16+
- assist in the management of properties and settings for an AIR application;
17+
- assist in the building of an AIR application;
2118

19+
This project runs in combination with the [APM repository](https://github.com/airsdk/apm-repository) which aims to provide a repository server to be the store for packages.
2220

23-
This project also aims to provide a repository server to be the store for packages.
21+
See the [wiki](https://github.com/airsdk/apm/wiki) for details.
2422

23+
## Get involved
2524

26-
See the [wiki](https://github.com/airsdk/apm/wiki) for details.
25+
Have a look at the contributing guidelines to see how you can contribute to apm.

0 commit comments

Comments
 (0)