Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
RandomByte committed Mar 29, 2018
0 parents commit 0b0d004
Show file tree
Hide file tree
Showing 21 changed files with 1,028 additions and 0 deletions.
14 changes: 14 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# see http://editorconfig.org

root = true

[*]
charset = utf-8

[*.{css,html,js,json,less,txt}]
trim_trailing_whitespace = true
end_of_line = lf
tab_width = 4

[*.md]
trim_trailing_whitespace = false
13 changes: 13 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# /node_modules/* and /bower_components/* ignored by default

# Exclude coverage folder
coverage/

# Exclude test files
test/tmp/
test/expected/
test/fixtures/

# Exlucde JSDoc output
docs/
jsdocs/
50 changes: 50 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
module.exports = {
"env": {
"node": true,
"es6": true
},
"parserOptions": {
"ecmaVersion": 8
},
"extends": ["eslint:recommended", "google"],
"rules": {
"indent": [
"error",
"tab"
],
"linebreak-style": [
"error",
"unix"
],
"quotes": [
"error",
"double"
],
"semi": [
"error",
"always"
],
"no-negated-condition": "off",
"require-jsdoc": "off",
"no-mixed-requires": "off",
"max-len": ["warn", 120],
"no-implicit-coercion": [
2,
{ "allow": ["!!"] }
],
"comma-dangle": "off",
"no-var": "off",
"no-tabs": "off",
"no-console": "off", // until we have better logging
'valid-jsdoc': [
2,
{
requireParamDescription: false,
requireReturnDescription: false,
requireReturn: false,
prefer: {return: 'returns'},
}
],
},
"root": true
};
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
* text=auto
*.js text eol=lf
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
## Expected Behavior
{...}

## Current Behavior
{...}

## Steps to reproduce the issue
1. {...}
2. {...}
3. {...}

## Context
- OS/Platform: {...}
- Node.js Version: {...}
- npm Version: {...}
- Browser *(if relevant)*: {...}
- Other information: {...}

## Affected components
- [ ] [ui5-builder](https://github.com/SAP/ui5-builder)
- [ ] [ui5-server](https://github.com/SAP/ui5-server)
- [ ] [ui5-cli](https://github.com/SAP/ui5-cli)
- [ ] [ui5-fs](https://github.com/SAP/ui5-fs)
- [ ] [ui5-project](https://github.com/SAP/ui5-project)
- [ ] [ui5-logger](https://github.com/SAP/ui5-logger)

## Stack trace/log output
```
{logs}
```
59 changes: 59 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Coverage directory used by tools like istanbul
coverage

# nyc test coverage
.nyc_output

# IDEs
.vscode/
*.~vsdx
.idea/

# node-waf configuration
.lock-wscript

# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules
jspm_packages

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# Misc
yarn.lock
.DS_Store

# Don't include private SSH key for deployment via Travis CI
deploy_key

# Custom directories
test/tmp/
jsdocs/
10 changes: 10 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
language: node_js # don't install any environment

node_js:
- "8"

script:
- npm run lint
- npm run coverage

after_success: bash ./deploy/deploy.sh
127 changes: 127 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
# Contributing to the UI5 Build and Development Tooling
Please read this document to understand what you can do:
* [Analyze Issues](#analyze-issues)
* [Report an Issue](#report-an-issue)
* [Contribute Code](#contribute-code)

## Analyze Issues
Analyzing issue reports can be a lot of effort. Any help is welcome!
Go to [the Github issue tracker](https://github.com/SAP/ui5-tooling/issues?state=open) and find an open issue which needs additional work or a bugfix.

Additional work may be further information or a hint that helps understanding the issue. Maybe you can even identify the root cause and [contribute](#contribute-code) a bugfix?

## Report an Issue
If you find a bug you are welcome to report it.
We can only handle well-reported, actual bugs, so please follow the guidelines below and use forums like [StackOverflow](http://stackoverflow.com/questions/tagged/sapui5) for support questions or when in doubt whether the issue is an actual bug.

Once you have familiarized with the guidelines, you can go to the [Github issue tracker](https://github.com/SAP/ui5-tooling/issues/new) to report the issue.

### Requirements for a bug report
These eight requirements are the mandatory base of a good bug report:

1. **Only real bugs**: please do your best to make sure to only report real bugs! Do not report:
* issues caused by dependencies or plugins.
* issues caused by the usage of non-public/internal methods. Only the public methods listed in the API documentation may be used.
* something that behaves just different from what you expected. A bug is when something behaves different than specified. When in doubt, ask in a forum.
* something you do not get to work properly. Use a support forum like [StackOverflow](http://stackoverflow.com/questions/tagged/sapui5) to request help.
2. **No duplicate**: you have searched the issue tracker to make sure the bug has not yet been reported
3. **Good summary**: the summary should be specific to the issue
4. **Current bug**: the bug can be reproduced in the most current version (state the tested version!)
5. **Reproducible bug**: there are step-by-step instructions provided on how to reproduce the issue.
6. **Well-documented**:
* precisely state the expected and the actual behavior
* give information about the environment the issue occurs in (OS/Platform, Node.js version, etc.). If possible also the behavior in other environments
* generally give as much additional information as possible. (But find the right balance: do not invest hours for a very obvious and easy to solve issue. When in doubt, give more information.)
8. **Only one bug per report**: open different tickets for different issues

You are encouraged to use [this template](ISSUE_TEMPLATE.md).

Please report bugs in English, so all users can understand them.

### Issue handling process
When an issue is reported, a committer will look into it and either confirm it as a real issue (by giving the "approved" label), close it if it is not an issue, or ask for more details. Approved issues are then either assigned to a committer in GitHub, reported in our internal issue handling system, or left open as "contribution welcome" for easy or not urgent fixes.

An issue that is about a real bug is closed as soon as the fix is committed.

### Reporting Security Issues
If you find a security issue, please act responsibly and report it not in the public issue tracker, but directly to us, so we can fix it before it can be exploited:
* SAP Customers: if the found security issue is not covered by a published security note, please report it by creating a customer message at https://service.sap.com/message.
* Researchers/non-Customers: please send the related information to secure@sap.com using [PGP for e-mail encryption](http://global.sap.com/pc/security/keyblock.txt).

Also refer to the general [SAP security information page](https://www.sap.com/corporate/en/company/security.html).

### Usage of Labels
Github offers labels to categorize issues. We defined the following labels so far:

Labels for issue categories:
* bug: this issue is a bug in the code
* documentation: this issue is about wrong documentation
* enhancement: this is not a bug report, but an enhancement request

Status of open issues:
* unconfirmed: this report needs confirmation whether it is really a bug (no label; this is the default status)
* approved: this issue is confirmed to be a bug
* author action: the author is required to provide information
* contribution welcome: this fix/enhancement is approved and you are invited to contribute it

Status/resolution of closed issues:

* fixed: a fix for the issue was provided
* duplicate: the issue is also reported in a different ticket and is handled there
* invalid: for some reason or another this issue report will not be handled further (maybe lack of information or issue does not apply anymore)
* works: not reproducible or working as expected
* wontfix: while acknowledged to be an issue, a fix cannot or will not be provided

The labels can only be set and modified by committers.

### Issue Reporting Disclaimer
We want to improve the quality of the UI5 Build and Development Tooling and good bug reports are welcome! But our capacity is limited, so we cannot handle questions or consultation requests and we cannot afford to ask for required details. So we reserve the right to close or to not process insufficient bug reports in favor of those which are very cleanly documented and easy to reproduce. Even though we would like to solve each well-documented issue, there is always the chance that it won't happen - remember: the UI5 Build and Development Tooling are Open Source and come without warranty.

Bug report analysis support is very welcome! (e.g. pre-analysis or proposing solutions)

## Contribute Code
You are welcome to contribute code to the UI5 Build and Development Tooling in order to fix bugs or to implement new features.

There are three important things to know:

1. You must be aware of the Apache License (which describes contributions) and **agree to the Contributors License Agreement**. This is common practice in major Open Source projects. To make this process as simple as possible, we are using *[CLA assistant](https://cla-assistant.io/)* for individual contributions. CLA assistant is an open source tool that integrates with GitHub very well and enables a one-click-experience for accepting the CLA. For company contributers special rules apply. See the respective section below for details.
2. There are **several requirements regarding code style, quality, and product standards** which need to be met (we also have to follow them). The respective section below gives more details on the coding guidelines.
3. **Not all proposed contributions can be accepted**. Some features may just fit a third-party add-on better. The code must match the overall direction of the UI5 Build and Development Tooling and improve it. So there should be some "bang for the byte". For most bug fixes this is given, but a major feature implementation first need to be discussed with one of the committers (the top 20 or more of the [Contributors List](https://github.com/SAP/ui5-tooling/graphs/contributors)). Possibly one who touched the related code or module recently. The more effort you invest, the better you should clarify in advance whether the contribution will match the projects direction: the best way would be to just open an enhancement ticket in the issue tracker to discuss the feature you plan to implement (make it clear you intend to contribute). We will then forward the proposal to the respective code owner, this avoids disappointment.

### Contributor License Agreement
When you contribute (code, documentation, or anything else), you have to be aware that your contribution is covered by the same [Apache 2.0 License](http://www.apache.org/licenses/LICENSE-2.0) that is applied to the UI5 Build and Development Tooling themselves.
In particular you need to agree to the Individual Contributor License Agreement,
which can be [found here](https://gist.github.com/CLAassistant/bd1ea8ec8aa0357414e8).
(This applies to all contributors, including those contributing on behalf of a company). If you agree to its content, you simply have to click on the link posted by the CLA assistant as a comment to the pull request. Click it to check the CLA, then accept it on the following screen if you agree to it. CLA assistant will save this decision for upcoming contributions and will notify you if there is any change to the CLA in the meantime.

#### Company Contributors
If employees of a company contribute code, in **addition** to the individual agreement above, there needs to be one company agreement submitted. This is mainly for the protection of the contributing employees.

A company representative authorized to do so needs to download, fill, and print the [Corporate Contributor License Agreement](/docs/SAP%20Corporate%20Contributor%20License%20Agreement.pdf) form. Then either:

- Scan it and e-mail it to [opensource@sap.com](mailto:opensource@sap.com) and [openui5@sap.com](mailto:openui5@sap.com)
- Fax it to: +49 6227 78-45813
- Send it by traditional letter to: *Industry Standards & Open Source Team, Dietmar-Hopp-Allee 16, 69190 Walldorf, Germany*

The form contains a list of employees who are authorized to contribute on behalf of your company. When this list changes, please let us know.

### Contribution Content Guidelines
Contributed content can be accepted if it:

1. is useful to improve the UI5 Build and Development Tooling (explained above)
2. follows the applicable guidelines and standards

The second requirement could be described in entire books and would still lack a 100%-clear definition, so you will get a committer's feedback if something is not right. Extensive conventions and guidelines documentation is [available here](docs/Guidelines.md).

### How to contribute - the Process
1. Make sure the change is welcome (e.g. a bugfix or a useful feature). Best do so by proposing it in a GitHub issue
2. Create a branch forking the relevant module repository and do your change
3. Commit and push your changes on that branch
4. If your change fixes an issue reported at GitHub, add the following line to the commit message:
- ```Fixes: #<issueNumber>``` (e.g. ```Fixes: #42```)
5. Create a Pull Request in the relevant repository
6. Follow the link posted by the CLA assistant to your pull request and accept it, as described in detail above.
7. Wait for our code review and approval, possibly enhancing your change on request
- Note that the UI5 developers have many duties. So depending on the required effort for reviewing, testing and clarification this may take a while
8. Once the change has been approved we will inform you in a comment
9. Once approved you may merge the Pull Request.
Loading

0 comments on commit 0b0d004

Please sign in to comment.