Skip to content

Commit 0e0e5c8

Browse files
author
Emilio Pavia
committed
Initial release
0 parents  commit 0e0e5c8

File tree

2,092 files changed

+395426
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,092 files changed

+395426
-0
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior:
15+
1. Go to '...'
16+
2. Click on '....'
17+
3. Scroll down to '....'
18+
4. See error
19+
20+
**Expected behavior**
21+
A clear and concise description of what you expected to happen.
22+
23+
**Screenshots**
24+
If applicable, add screenshots to help explain your problem.
25+
26+
**Desktop (please complete the following information):**
27+
- OS: [e.g. iOS]
28+
- Browser [e.g. chrome, safari]
29+
- Version [e.g. 22]
30+
31+
**Smartphone (please complete the following information):**
32+
- Device: [e.g. iPhone6]
33+
- OS: [e.g. iOS8.1]
34+
- Browser [e.g. stock browser, safari]
35+
- Version [e.g. 22]
36+
37+
**Additional context**
38+
Add any other context about the problem here.
+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the solution you'd like**
14+
A clear and concise description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
17+
A clear and concise description of any alternative solutions or features you've considered.
18+
19+
**Additional context**
20+
Add any other context or screenshots about the feature request here.

.gitignore

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
## Build generated
2+
build/
3+
DerivedData/
4+
5+
## Protos
6+
third_party/sciencejournal/ios/Protos/*.pbobjc.*
7+
8+
## Various settings
9+
*.pbxuser
10+
!default.pbxuser
11+
*.mode1v3
12+
!default.mode1v3
13+
*.mode2v3
14+
!default.mode2v3
15+
*.perspectivev3
16+
!default.perspectivev3
17+
xcuserdata/
18+
19+
## Other
20+
*.moved-aside
21+
*.xcuserstate
22+
.DS_Store
23+
24+
## Obj-C/Swift specific
25+
*.hmap
26+
*.ipa
27+
*.dSYM.zip
28+
*.dSYM
29+
30+
## CocoaPods
31+
Pods/
32+
ScienceJournal.xcworkspace
33+
34+
## Generated Plist
35+
Info-Combined.plist
36+
37+
## Local option overrides for SwiftLint
38+
.swiftlint.options.local
39+
40+
## fastlane
41+
fastlane/

.swiftlint.yml

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# This config file defines the rules, but it should not be used to specify
2+
# which paths are linted. Build Phase scripts exclusive to each build are
3+
# responsible for referencing this config file and the paths to lint.
4+
5+
line_length:
6+
warning: 130
7+
8+
file_length:
9+
warning: 1000 # We have some longer file length we should reduce.
10+
11+
function_body_length:
12+
warning: 110 # We have some longer function bodies we should reduce.
13+
14+
function_parameter_count:
15+
warning: 8 # We use a lot of dependency injection. TODO: pass dependencies in groups.
16+
17+
nesting:
18+
type_level: 2 # We compartmentalize a lot of views and data with nesting.
19+
20+
type_body_length:
21+
warning: 314 # We have some offenders that should be cleaned up.
22+
23+
force_cast:
24+
severity: warning
25+
26+
disabled_rules:
27+
- closure_parameter_position # Newlines can conflict with having params on same line as opening brace.
28+
- colon # Problematic for newlines.
29+
- identifier_name # Generates false positives for max length.
30+
- todo # We have todos and are ok with that.
31+
- type_name # Types should be as verbose as needed, we also check during code review.
32+
- trailing_comma # Google rules say we need a trailing comma.
33+
- multiple_closures_with_trailing_closure # We're ok with this.
34+
- cyclomatic_complexity # We'll catch future issues in code review.
35+
- nesting # We have some cases where deeper nesting is desirable.
36+
- trailing_whitespace # So annoying...

CHANGE_LIMITATIONS.md

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# What changes we can't accept
2+
3+
While we wish we could accept all changes (especially changes that make the organization or readability of the project better), we can't due to technical limitations 😢.
4+
5+
## What is up with this weird module map or strange import statement 🤷‍♂️?
6+
7+
We host our source code in this repo and treat that as the “source of truth”. The internal build toolchain and dependency manager are not CocoaPods. In order to be able to work with both internal and external tooling, we’ve had to make some concessions with how the project is configured. There are a number of considerations you must make if you’re thinking about changing things that look non-standard.
8+
9+
### Module maps and import statements
10+
11+
We use custom module maps that link directly to various dependencies like [SSOAuth](https://github.com/bcmi-labs/Science-Journal-iOS/blob/master/ModuleMaps/SSOAuth.modulemaps/module.modulemap). We can’t modify these as our internal dependency management tool has some requirements that necessitate the current import format. You can see that come into play where imports are prefixed with things like “[googlemac_iPhone](https://github.com/bcmi-labs/Science-Journal-iOS/blob/a172a0b2ec1987c214c29371bcdbc2ecbecc901a/ScienceJournal/Accounts/AccountsManager.swift#L19)”. Sadly, we must leave these in.
12+
13+
### Updating Swift
14+
15+
We want to be running the latest Swift 🏃‍♀️ as much as anybody. At this time we can’t accept Swift version update PRs. Our internal source of truth must be updated first. Because the internal source of truth has more code than the open source project, we’ll have to do the migration, and test it internally to make sure all of our tooling works—inside and outside of Google.
16+
17+
### Podfile updates
18+
19+
Adding new pods isn’t out of the question, but please be mindful as we only support Apache 2.0 and MIT licensed software.
20+
21+
It is unlikely we'd be able to approve the removal or update of existing pods. We have more internal requirements that must be satisfied so we limit podfile updates to new features, bug fixes, and security updates that impact us.

CODE_OF_CONDUCT.md

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as
6+
contributors and maintainers pledge to making participation in our project and
7+
our community a harassment-free experience for everyone, regardless of age, body
8+
size, disability, ethnicity, sex characteristics, gender identity and expression,
9+
level of experience, education, socio-economic status, nationality, personal
10+
appearance, race, religion, or sexual identity and orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to creating a positive environment
15+
include:
16+
17+
* Using welcoming and inclusive language
18+
* Being respectful of differing viewpoints and experiences
19+
* Gracefully accepting constructive criticism
20+
* Focusing on what is best for the community
21+
* Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
* The use of sexualized language or imagery and unwelcome sexual attention or
26+
advances
27+
* Trolling, insulting/derogatory comments, and personal or political attacks
28+
* Public or private harassment
29+
* Publishing others' private information, such as a physical or electronic
30+
address, without explicit permission
31+
* Other conduct which could reasonably be considered inappropriate in a
32+
professional setting
33+
34+
## Our Responsibilities
35+
36+
Project maintainers are responsible for clarifying the standards of acceptable
37+
behavior and are expected to take appropriate and fair corrective action in
38+
response to any instances of unacceptable behavior.
39+
40+
Project maintainers have the right and responsibility to remove, edit, or
41+
reject comments, commits, code, wiki edits, issues, and other contributions
42+
that are not aligned to this Code of Conduct, or to ban temporarily or
43+
permanently any contributor for other behaviors that they deem inappropriate,
44+
threatening, offensive, or harmful.
45+
46+
## Scope
47+
48+
This Code of Conduct applies both within project spaces and in public spaces
49+
when an individual is representing the project or its community. Examples of
50+
representing a project or community include using an official project e-mail
51+
address, posting via an official social media account, or acting as an appointed
52+
representative at an online or offline event. Representation of a project may be
53+
further defined and clarified by project maintainers.
54+
55+
## Enforcement
56+
57+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
58+
reported by contacting the project team at [email protected]. All
59+
complaints will be reviewed and investigated and will result in a response that
60+
is deemed necessary and appropriate to the circumstances. The project team is
61+
obligated to maintain confidentiality with regard to the reporter of an incident.
62+
Further details of specific enforcement policies may be posted separately.
63+
64+
Project maintainers who do not follow or enforce the Code of Conduct in good
65+
faith may face temporary or permanent repercussions as determined by other
66+
members of the project's leadership.
67+
68+
## Attribution
69+
70+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71+
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72+
73+
[homepage]: https://www.contributor-covenant.org
74+
75+
For answers to common questions about this code of conduct, see
76+
https://www.contributor-covenant.org/faq

CONTRIBUTING.md

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Contributing to Science Journal iOS
2+
3+
## I have a question or want to report a problem
4+
5+
### App Store downloaded Science Journal
6+
7+
If you're having a problem with [Science Journal from the App Store](https://apps.apple.com/us/app/arduino-science-journal/id1518014927?mt=8), the fastest way to get support is by using the in-app feedback button. This can be found by navigating to the experiment list screen, tapping on the hamburger menu, and then tapping "Feedback".
8+
9+
### Downloaded and built from GitHub
10+
11+
If you built the app yourself, somebody else, or any other distribution channel that wasn't Apple's App Store, this section is for you!
12+
13+
Before submitting a new GitHub issue, please make sure to
14+
15+
- Check out our forums [Science Journal forums](https://forum.arduino.cc/index.php?board=131.0)
16+
- Check out the README in [this repo](https://github.com/bcmi-labs/Science-Journal-iOS/blob/master/README.md)
17+
- Search for [existing GitHub issues](https://github.com/bcmi-labs/Science-Journal-iOS/issues)
18+
19+
If the above doesn't help, please [submit an issue](https://github.com/bcmi-labs/Science-Journal-iOS/issues) on GitHub and provide information about your setup.
20+
21+
**Note**: If you want to report a regression in Science Journal iOS (something that has worked before, but broke with a new release), please mark your issue title as such using `[Regression] Your title here`. This enables us to quickly detect and fix regressions.
22+
23+
## I want to contribute to Science Journal iOS
24+
25+
- To start working on Science Journal iOS, check out [Your First PR](https://github.com/bcmi-labs/Science-Journal-iOS/blob/master/YOUR_FIRST_PR.md).
26+
- We have a few limits on what changes we can accept, from a techinical perspective. It might not be obvious, so please read [Change Limitations](https://github.com/bcmi-labs/Science-Journal-iOS/blob/master/CHANGE_LIMITATIONS.md).
27+
28+
## Contributor License Agreement (CLA)
29+
30+
Upon your first pull request to Science Journal iOS, we ask you to sign the [Contributor License Agreement](). Once the CLA has been accepted, the PR will be available to merge and you will not be asked to sign it again unless your GitHub username or email address changes.
31+
32+
33+
## Why did my issue/PR get closed?
34+
35+
It's not you, it's us! Science Journal iOS might receive a lot of issues and PRs. In order to effectively work through them and give each the prompt attention it deserves, we need to keep a sharp focus on the work we have outstanding.
36+
37+
One way we do this is by closing issues that we don't feel are immediately actionable. This might mean that we need more information in order to investigate or, it might mean that we haven't been able to reproduce it using the provided info. In this case we might close the issue while we wait for others to reproduce the problem and possibly provide some more info that unlocks the mystery.
38+
39+
**A closed issue is not necessarily the end of the story!** If more info becomes available after an issue is closed, it can be reopened for further consideration.
40+
41+
One of the best ways we can keep Science Journal iOS an approachable, stable, and dependable app is to be deliberate about how we choose to modify it. If we don't adopt your changes or new feature, that doesn't mean it was bad work! It may be that the Science Journal philosophy about how to accomplish a particular task doesn't align well with your approach. The best way to make sure that your time is well spent in contributing to Science Journal iOS is to **start your work** on a modification or new feature **by opening an issue to discuss the problem or shortcoming**. As the Science Journal iOS maintainers, we will do our best to give early feedback about whether a particular goal and approach is likely to be something we want to adopt!
42+
43+
## Code of Conduct
44+
45+
Help us keep Science Journal iOS open and inclusive. Please read and follow our [Code of Conduct](https://github.com/bcmi-labs/Science-Journal-iOS/blob/master/CODE_OF_CONDUCT.md).
46+
47+
## License
48+
49+
This project is licensed under the terms of the Apache 2.0 license. See the [LICENSE](https://github.com/bcmi-labs/Science-Journal-iOS/blob/master/LICENSE) file.

0 commit comments

Comments
 (0)