Skip to content

Commit

Permalink
Merge pull request #1 from invertase/oss-release
Browse files Browse the repository at this point in the history
refactor: Prepare for OSS release
  • Loading branch information
Salakar authored Dec 10, 2023
2 parents 0766862 + fb461b9 commit 2315370
Show file tree
Hide file tree
Showing 56 changed files with 5,229 additions and 28 deletions.
37 changes: 37 additions & 0 deletions .github/workflows/dart_validate.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: all_dart_packages

on:
pull_request:
push:
branches:
- main

jobs:
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
- uses: bluefireteam/melos-action@v3
- run: melos run format-check

analyze:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
- uses: bluefireteam/melos-action@v3
- uses: invertase/[email protected]
with:
fatal-infos: true

test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
with:
cache: true
- uses: bluefireteam/melos-action@v3
- name: Run tests
run: melos test
29 changes: 29 additions & 0 deletions .github/workflows/title_validation.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: "PR Title is Conventional"

on:
pull_request:

jobs:
main:
name: Validate PR title
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
types: |
build
chore
ci
docs
feat
fix
perf
refactor
revert
style
test
subjectPattern: ^[A-Z].+$
subjectPatternError: |
The subject of the PR must begin with an uppercase letter.
37 changes: 10 additions & 27 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,27 +1,10 @@
# See https://www.dartlang.org/guides/libraries/private-files

# Files and directories created by pub
.dart_tool/
.packages
build/
# If you're building an application, you may want to check-in your pubspec.lock
pubspec.lock

# Directory created by dartdoc
# If you don't generate documentation locally you can remove this line.
doc/api/

# dotenv environment variables file
.env*

# Avoid committing generated Javascript files:
*.dart.js
*.info.json # Produced by the --dump-info flag.
*.js # When generated by dart2js. Don't specify *.js if your
# project includes source files written in JavaScript.
*.js_
*.js.deps
*.js.map

.flutter-plugins
.flutter-plugins-dependencies
.DS_Store
node_modules/
npm-debug.log
dist/
.vscode/
.wrangler
.nvim.lua
.idea
*.iml
.dart_tool
101 changes: 101 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# Contribution Guidelines

**Note:** If these contribution guidelines are not followed your issue or PR might be closed, so
please read these instructions carefully.

_See also: [Invertases's code of conduct](https://github.com/invertase/meta/blob/main/CODE_OF_CONDUCT.md)_

## About

Globe is a global deployment platform for Dart & Flutter applications.

## Contribution types

### Bug Report

- If you find a bug, please first report it using [GitHub issues](https://github.com/invertase/globe/issues/new?assignees=&labels=bug%2Ctriage&template=bug_report.yml&title=fix%3A++).
- First check if there is not already an issue for it; duplicated issues will be closed.

### Bug Fix

- If you'd like to submit a fix for a bug, please read the [How To](#how-to-contribute) for how to send a pull request.
- Indicate on the open issue that you are working on fixing the bug and the issue will be assigned to you.
- Write `Fix #xxxx` in your PR text, where xxxx is the issue number (if there is one).
- Include a test that isolates the bug and verifies that it was fixed.

### New Features

- If you'd like to add a feature to the library that doesn't already exist, feel free to describe the feature in a new [GitHub issue](https://github.com/invertase/globe/issues/new?assignees=&labels=feature+request%2Ctriage&template=feature_request.yml&title=feature%3A++).
- If you'd like to implement the new feature, please wait for feedback from the project maintainers before spending too much time writing the code. In some cases, enhancements may not align well with the project future development direction.
- If applicable, implement the code for the new feature and please read the [How To](#how-to-contribute).

### Documentation & Miscellaneous

- If you have suggestions for improvements to the documentation or examples (or something else), we would love to hear about it.
- As always first file a [GitHub issue](https://github.com/invertase/globe/issues/new).
- Implement the changes to the documentation, please read the [How To](#how-to-contribute).

## How To Contribute

### Requirements

- Linux, Mac OS X, or Windows.
- [Git](https://git-scm.com) (used for source version control).
- An IDE such as [Android Studio](https://developer.android.com/studio) or [Visual Studio Code](https://code.visualstudio.com/).

### Forking & cloning the repository

- Ensure all the dependencies described in the previous section are installed.
- Fork `https://github.com/invertase/globe` into your own GitHub account. If
you already have a fork, and are now installing a development environment on
a new machine, make sure you've updated your fork so that you don't use stale
configuration options from long ago.
- `git clone [email protected]:<your_name_here>/globe.git`
- `git remote add upstream [email protected]:invertase/globe.git` (So that you
fetch from the main repository, not your clone, when running `git fetch` or `git pull`

### Local development setup

This repository uses a tool called [Melos](https://github.com/invertase/melos) to manage
packages and dependencies, to set it up, run the following command from your terminal:

```shell
dart pub global activate melos
```

Next, at the root of your locally cloned repository bootstrap the projects dependencies:

```shell
melos bootstrap
```

The bootstrap command locally links all dependencies within the project without having to
provide manual [`dependency_overrides`](https://dart.dev/tools/pub/pubspec). This allows all
plugins, examples and tests to build from the local clone project. You should only need to run this
command once.

> You do not need to run `dart pub get` once bootstrap has been completed.
### Performing changes

- Create a new local branch from `main` (e.g. `git checkout -b my-new-feature`)
- Make your changes (try to split them up with one PR per feature/fix).
- When committing your changes, make sure that each commit message is clear
(e.g. `git commit -m 'docs: Add CONTRIBUTING.md'`).
- Push your new branch to your own fork into the same remote branch
(e.g. `git push origin my-username.my-new-feature`, replace `origin` if you use another remote.)

### Open a pull request

To send us a pull request:

- Go to `https://github.com/invertase/globe` and click the
"Compare & pull request" button

Please make sure all your check-ins have detailed commit messages explaining the patch.

When naming the title of your pull request, please follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0-beta.4/)
guide.

Please also enable **“Allow edits by maintainers”**, this will help to speed-up the review
process as well.
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [yyyy] [name of copyright owner]
Copyright 2023-present Invertase Limited

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
52 changes: 52 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<p align="center">
<a href="https://globe.dev">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://static.invertase.io/assets/globe_light.png">
<img src="https://static.invertase.io/assets/globe_dark.png" width="256">
</picture>
<br /><br />
</a>
<span>The global deployment platform for Dart & Flutter applications.</span>
</p>

<p align="center">
<a href="https://github.com/invertase/melos#readme-badge"><img src="https://img.shields.io/badge/maintained%20with-melos-f700ff.svg?style=flat-square" alt="Melos" /></a>
<a href="https://discord.gg/UCcCYjDaTy">
<img src="https://img.shields.io/discord/1179425190007021568.svg?style=flat-square&colorA=7289da&label=Chat%20on%20Discord" alt="Chat on Discord">
</a>
</p>

<p align="center">
<a href="https://globe.dev/docs">Documentation</a> &bull;
<a href="https://github.com/invertase/globe/blob/main/LICENSE">License</a>
</p>

---

A collection of packages for Globe.

## Packages

| Package | Pub |
| ------------------------------------- | -------------------------------------------------------------------------------------------- |
| [Globe CLI](./packages/globe_cli) | [![pub](https://img.shields.io/pub/v/globe_cli.svg)](https://pub.dev/packages/globe_cli) |
| [Globe Lints](./packages/globe_lints) | [![pub](https://img.shields.io/pub/v/globe_lints.svg)](https://pub.dev/packages/globe_lints) |

## How to Contribute

To start making contributions please refer to
[`CONTRIBUTING.md`](./CONTRIBUTING.md).

## License

- See [LICENSE](/LICENSE)

---

<p align="center">
<a href="https://invertase.io/?utm_source=readme&utm_medium=footer&utm_campaign=melos">
<img width="75px" src="https://static.invertase.io/assets/invertase/invertase-rounded-avatar.png">
</a>
<p align="center">
Built and maintained with 💛 by <a href="https://invertase.io/?utm_source=readme&utm_medium=footer&utm_campaign=globe">Invertase</a>.
</p>
32 changes: 32 additions & 0 deletions melos.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: globe
repository: https://github.com/invertase/globe
packages:
- "*"
- "packages/*"

command:
version:
linkToCommits: true
branch: main
workspaceChangelog: true
hooks:
preCommit: |
dart run scripts/generate_version.dart && \
git add packages/globe_cli/lib/src/package_info.dart
scripts:
analyze:
run: |
melos exec -c 1 -- \
dart analyze --fatal-infos
description: Run `flutter analyze` for all packages.

format:
run: melos exec dart format . --fix
description: Run `dart format` for all packages.

format-check:
run: melos exec dart format . --set-exit-if-changed
description: Run `dart format` checks for all packages.

test: melos exec --no-flutter --dir-exists="test" -- "dart test ."
Empty file added packages/globe_cli/.gitignore
Empty file.
92 changes: 92 additions & 0 deletions packages/globe_cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# 0.0.1-dev.26

- `globe deploy` now streams build logs
- new command: `globe build-logs -d <deploymentId>`

# 0.0.1-dev.25

- `globe deploy` now streams build logs
- new command: `globe build-logs -d <deploymentId>`

# 0.0.1-dev.24

- `globe deploy` now streams build logs
- new command: `globe build-logs -d <deploymentId>`

# 0.0.1-dev.23

- Fixed update request on latest version

# 0.0.1-dev.22

- Improved logging of api errors

# 0.0.1-dev.21

- Nested `.gitignore` files are now respected.

# 0.0.1-dev.20

- Fix an issue with too many open files by pooling open file reads.

# 0.0.1-dev.19

- Deployment archives now ignore all files in `.gitignore` (including nested), the following directory glob matches are also excluded by default:

```
**.map
**.git**
**.dart_tool**
**.packages**
**.idea**
**.vscode**
**build**
**android**
**ios**
**linux**
**macos**
**windows**
```

# 0.0.1-dev.18

- Improves deployment output, shows deployment target, realtime status and preview URL.
- Removes internal checks of Melos & Build Runner, these are now handled server side.

# 0.0.1-dev.17

- Fix update message showing when there is no update.

# 0.0.1-dev.16

- CLI now supports Monorepos. Run globe commands from the root of your project and specify the project path of the project. This change has been made to better support CLI and GitHub projects.
- Removed max upload size check.
- CLI now respects `.gitignore` files (`.dart_tool` and `packages` are always ignored regardless).
- CLI now detects Build Runner & Melos, and updates project settings (to be implemented server side).

# 0.0.1-dev.5

- Fix an error with http requests.

# 0.0.1-dev.4

- The command line now warns if a new version is available.
- Uses project settings to validate the current project settings.
- Updates API responses to match the API updates.

# 0.0.1-dev.3

- Update deploy flow to handle changed project responses.
- Point to new local dev server in local mode.

# 0.0.1-dev.2

- Handle case where no organizations are found

# 0.0.1-dev.1

- Fixes and improvements

# 0.0.1-dev.0

- Initial version
Loading

0 comments on commit 2315370

Please sign in to comment.