Skip to content

Commit

Permalink
Set up the repository (#1)
Browse files Browse the repository at this point in the history
* Add scalafmt configuration
* Add docs and issue/PR templates
* Update gitignore, add readme and license
* Add contributing and code of conduct
  • Loading branch information
iamrecursion committed Jun 11, 2019
1 parent 76344cf commit e91df35
Show file tree
Hide file tree
Showing 23 changed files with 7,035 additions and 1 deletion.
53 changes: 53 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.md
@@ -0,0 +1,53 @@
---
name: Bug Report
about: Report a bug in Enso.
title: ''
labels: 'Type: Bug'
assignees: ''

---

<!--
Please ensure that you are running the latest version of Enso before reporting
the bug! It may have been fixed since.
-->

### General Summary
<!--
- Please include a high-level description of your bug here.
-->

### Steps to Reproduce
<!--
Please list the reproduction steps for your bug. For example:
1. Launch the enso interpreter in server mode `enso --server --socket:8080`.
2. Send it a message as follows, where `path/to/project` doesn't exist.
```json
{
message-type: "load-project",
load-project: {
path: "path/to/project"
}
...
}
```
3. Observe that the compiler crashes.
-->

### Expected Result
<!--
- A description of the results you expected from the reproduction steps.
-->

### Actual Result
<!--
- A description of what actually happens when you run these steps.
- Please include any error output if relevant.
-->

### Luna Version
<!--
- Please include the output of `enso --version`.
-->
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/epic.md
@@ -0,0 +1,31 @@
---
name: Epic
about: Create a new epic for Enso development.
title: ''
labels: ''
assignees: ''

---

### Summary
<!--
- This section should summarise the work we want to accomplish during the epic.
-->

### Value
<!--
- A description of the value this epic brings to users.
- The motivation behind this epic.
-->

### Specification
<!--
- The high-level requirements of the epic.
- Any performance requirements for the epic.
-->

### Acceptance Criteria & Test Cases
<!--
- The high-level acceptance criteria for the epic.
- The test plan for the epic.
-->
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.md
@@ -0,0 +1,24 @@
---
name: Feature Request
about: Request a new feature in Enso.
title: ''
labels: 'Type: Enhancement'
assignees: ''

---

<!--
Please ensure that you check the latest version of Enso to see if your feature
has been implemented.
-->

### General Summary
<!--
- Describe the feature you are requesting.
-->

### Motivation
<!--
- A description of the motivation for adding this feature to Enso.
- Ideally this would include use-cases that support the feature.
-->
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/task.md
@@ -0,0 +1,31 @@
---
name: Task
about: Create a new development task for Enso.
title: ''
labels: ''
assignees: ''

---

### Summary
<!--
- A summary of the task.
-->

### Value
<!--
- This section should describe the value of this task.
- This value can be for users, to the team, etc.
-->

### Specification
<!--
- Detailed requirements for the feature.
- The performance requirements for the feature.
-->

### Acceptance Criteria & Test Cases
<!--
- Any criteria that must be satisfied for the task to be accepted.
- The test plan for the feature, related to the acceptance criteria.
-->
19 changes: 19 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,19 @@
### Pull Request Description
<!--
- Please describe the nature of your PR here, as well as the motivation for it.
- If it fixes an open issue, please mention that issue number here.
-->

### Important Notes
<!--
- Mention important elements of the design.
- Mention any notable changes to APIs.
-->

### Checklist
Please include the following checklist in your PR:

- [ ] The documentation has been updated if necessary.
- [ ] The code conforms to the [Scala](https://github.com/luna/enso/blob/master/doc/scala-style-guide.md) or [Haskell](https://github.com/luna/enso/blob/master/doc/haskell-style-guide.md) style guides as appropriate.
- [ ] The code has been tested where possible.

54 changes: 54 additions & 0 deletions .gitignore
@@ -1,2 +1,56 @@

###########
## Scala ##
###########

target/
*.class
*.log

#############
## Haskell ##
#############

dist
cabal-dev
*.o
*.hi
*.chi
*.chs.h
*.dyn_o
*.dyn_hi
.hpc
.hsenv
.cabal-sandbox/
cabal.sandbox.config
*.cabal
*.prof
*.aux
*.hp
*.DS_Store
.stack-work/

############
## System ##
############

# OSX
.DS_Store

############
## Images ##
############

*.jpg
*.jpeg
*.png
*.bmp
*.psd

######################
## Tooling Specific ##
######################

.idea/
*.swp
.projections.json
53 changes: 53 additions & 0 deletions .scalafmt.conf
@@ -0,0 +1,53 @@
// Scala Formatting Configuration for Enso

// All Scala files should be reformatted through this formatter before being
// committed to the repositories.

version = "2.0.0-RC8"

// Wrapping and Alignment
align = most
align.openParenCallSite = false
align.openParenDefnSite = false
align.tokens = [
{code = "=>", owner = "Case"}
{code = "%", owner = "Term.ApplyInfix"}
{code = "%%", owner = "Term.ApplyInfix"}
{code = "="}
{code = "<-"}
{code = "extends"}
{code = ":", owner = "Defn.Def"}
]
maxColumn = 80
verticalAlignMultilineOperators = true

// Comments and Documentation
docstrings = "scaladoc"

// Indentation
assumeStandardLibraryStripMargin = true
continuationIndent.callSite = 2
continuationIndent.defnSite = 2

// Newlines
newlines.alwaysBeforeElseAfterCurlyIf = true
newlines.alwaysBeforeTopLevelStatements = true

// Rewrite Rules
rewrite.rules = [
ExpandImportSelectors,
PreferCurlyFors,
RedundantParens,
SortModifiers,
]
rewrite.sortModifiers.order = [
"implicit", "final", "sealed", "abstract",
"override", "private", "protected", "lazy"
]

// Multiline Configuration
verticalMultiline.atDefnSite = true
verticalMultiline.arityThreshold = 4

// Please remember that `//format: off` and `//format: on` directives should be
// used sparingly, if at all.
88 changes: 88 additions & 0 deletions CODE_OF_CONDUCT.md
@@ -0,0 +1,88 @@
# The Enso Code of Conduct

## Conduct

**Contact**: [luna-mods@luna-lang.org](mailto:luna-mods@luna-lang.org)

- We are committed to providing a friendly, safe and welcoming environment for
all, regardless of level of experience, gender identity and expression, sexual
orientation, disability, personal appearance, body size, race, ethnicity, age,
religion, nationality, or other similar characteristic.
- On Discord, please avoid using overtly sexual nicknames or other nicknames
that might detract from a friendly, safe and welcoming environment for all.
- Please be kind and courteous. There's no need to be mean or rude.
- Respect that people have differences of opinion and that every design or
implementation choice carries a trade-off and numerous costs. There is seldom
a right answer.
- Please keep unstructured critique to a minimum. If you have solid ideas you
want to experiment with, make a fork and see how it works.
- We will exclude you from interaction if you insult, demean or harass anyone.
That is not welcome behaviour. We interpret the term "harassment" as including
the definition in the
[Citizen Code of Conduct](http://citizencodeofconduct.org/); if you have any
lack of clarity about what might be included in that concept, please read
their definition. In particular, we don't tolerate behaviour that excludes
people in socially marginalized groups.
- Private harassment is also unacceptable. No matter who you are, if you feel
you have been or are being harassed or made uncomfortable by a community
member, please contact one of the moderators or any of the
[Enso moderation team][mod_team] immediately. Whether you're a regular
contributor or a newcomer, we care about making this community a safe place
for you and we've got your back.
- Likewise any spamming, trolling, flaming, baiting or other attention-stealing
behaviour is not welcome.

## Moderation
These are the policies for upholding our community's standards of conduct. If
you feel that a thread needs moderation, please contact the
[Enso moderation team][mod_team].

1. Remarks that violate the Enso standards of conduct, including hateful,
hurtful, oppressive, or exclusionary remarks, are not allowed. Cursing is
allowed, but never targeting another user, and never in a hateful manner.
2. Remarks that moderators find inappropriate, whether listed in the code of
conduct or not, are also not allowed.
3. Moderators will first respond to such remarks with a warning.
4. If the warning is unheeded, the user will be "kicked," i.e., kicked out of
the communication channel to cool off.
5. If the user comes back and continues to make trouble, they will be banned,
i.e., indefinitely excluded.
6. Moderators may choose at their discretion to un-ban the user if it was a
first offense and they offer the offended party a genuine apology.
7. If a moderator bans someone and you think it was unjustified, please take it
up with that moderator, or with a different moderator, **in private**.
Complaints about bans in-server are not allowed.
8. Moderators are held to a higher standard than other community members. If a
moderator creates an inappropriate situation, they should expect less leeway
than others.

In the Enso community we all aim to go the extra mile and look out for each
other. We don't just aim to be technically unimpeachable, but we try to be our
very best selves. In particular, avoid flirting with offensive or sensitive
topics, particularly if they're off-topic. Doing so all too often leads to
unnecessary fights, hurt feelings and damaged trust; worse, it can drive people
away from the community entirely.

If someone takes issue with something you said or did, resist the urge to be
defensive. Just stop what it was they complained about and apologise. Even if
you feel that you were misinterpreted or unfairly accused, it is likely that
there was something you could've communicated better — remember it is _your_
responsibility to make your fellow Enso contributors comfortable. Everyone wants
to get along, and everyone in this community is here first and foremost to talk
about cool technology! You will find that people will be eager to assume good
intent and forgive as long as there is an atmosphere of trust.

The enforcement policies listed above apply to all official Enso venues. This
includes the official discord and GitHub repositories under `luna`.

_Adapted from the_
_[Node.js Policy on Trolling](http://blog.izs.me/post/30036893703/policy-on-trolling)_
_as well as the_
_[Contributor Covenant v1.3.0](https://www.contributor-covenant.org/version/1/3/0/)._

[mod_team]: [luna-mods@luna-lang.org](mailto:luna-mods@luna-lang.org)

## Credits
This code of conduct is adapted from the [Rust](https://rust-lang.org) code of
conduct. Many thanks to the Rust community for being such an exemplar of the
open-source spirit!

0 comments on commit e91df35

Please sign in to comment.