Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions .github/workflows/sync_activity.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Daily Activity Sync

on:
schedule:
# Run daily at 02:17 UTC (offset from top of hour to avoid high-load queue drops)
- cron: '17 2 * * *'
workflow_dispatch:
inputs:
days:
description: 'Number of past days of activity to sync'
required: false
default: '7'

permissions:
contents: write

concurrency:
group: sync-activity
cancel-in-progress: false

jobs:
sync:
name: Sync Contributor Activity
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Set up Dart SDK
uses: dart-lang/setup-dart@e51d8e571e22473a2ddebf0ef8a2123f0ab2c02c # v1.7.1

- name: Install dependencies
run: dart pub get

- name: Run activity sync
env:
ORG_READ_TOKEN: ${{ secrets.ORG_READ_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DAYS: ${{ inputs.days || '7' }}
run: dart run tool/sync_activity.dart --days "$DAYS"

- name: Commit and push changes
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add data/activity/ data/activity_summary.json
if git diff --staged --quiet; then
echo "No activity changes to commit."
else
git commit -m "chore: sync contributor activity data [skip ci]"
git pull --rebase origin main || true
git push
fi
38 changes: 38 additions & 0 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Validate Data Pipeline

on:
push:
branches: [main]
pull_request:
branches: [main]

permissions:
contents: read

concurrency:
group: validate-${{ github.ref }}
cancel-in-progress: true

jobs:
validate:
name: Validate Data Pipeline & Tests
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Set up Dart SDK
uses: dart-lang/setup-dart@e51d8e571e22473a2ddebf0ef8a2123f0ab2c02c # v1.7.1

- name: Install dependencies
run: dart pub get

- name: Verify code formatting
run: dart format --output=none --set-exit-if-changed .

- name: Analyze Dart code
run: dart analyze

- name: Run unit test suite
run: dart test
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Dart tool artifacts
.dart_tool/
.packages
pubspec.lock

# OS metadata
.DS_Store
Thumbs.db
52 changes: 26 additions & 26 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Contributing to Flutter
=======================

_tl;dr: join [Discord](./docs/contributing/Chat.md), be [courteous](CODE_OF_CONDUCT.md), follow the steps below to set up a development environment; if you stick around and contribute, you can [join the team](./docs/contributing/Contributor-access.md) and get commit access._
_tl;dr: join [Discord](https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md), be [courteous](https://github.com/flutter/flutter/blob/main/CODE_OF_CONDUCT.md), follow the steps below to set up a development environment; if you stick around and contribute, you can [join the team](https://github.com/flutter/flutter/blob/main/docs/contributing/Contributor-access.md) and get commit access._

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess this was copied from flutter/flutter and the links didn't work?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup. Kevin originally just copied the file over from flutter/flutter when the repo was set up, so the links were all relative.


Welcome
-------
Expand All @@ -17,19 +17,19 @@ doing outreach about Flutter, or helping out in any other way.
We grant commit access (which includes full rights to the issue
database, such as being able to edit labels) to people who have gained
our trust and demonstrated a commitment to Flutter. For more details
see the [Contributor access](./docs/contributing/Contributor-access.md)
see the [Contributor access](https://github.com/flutter/flutter/blob/main/docs/contributing/Contributor-access.md)
page in our docs.

We communicate primarily over GitHub and [Discord](./docs/contributing/Chat.md).
We communicate primarily over GitHub and [Discord](https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md).

Before you get started, we encourage you to read these documents which describe some of our community norms:

1. [Our code of conduct](CODE_OF_CONDUCT.md), which stipulates explicitly
1. [Our code of conduct](https://github.com/flutter/flutter/blob/main/CODE_OF_CONDUCT.md), which stipulates explicitly
that everyone must be gracious, respectful, and professional. This
also documents our conflict resolution policy and encourages people
to ask questions.

2. [Values](./docs/about/Values.md),
2. [Values](https://github.com/flutter/flutter/blob/main/docs/about/Values.md),
which talks about what we care most about.

Helping out in the issue database
Expand All @@ -41,14 +41,14 @@ useful for our engineers.

If you want to help us triage, you are very welcome to do so!

1. Join the #hackers-triage [Discord channel](./docs/contributing/Chat.md).
1. Join the #hackers-triage [Discord channel](https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md).

2. Read [our code of conduct](CODE_OF_CONDUCT.md), which stipulates explicitly
2. Read [our code of conduct](https://github.com/flutter/flutter/blob/main/CODE_OF_CONDUCT.md), which stipulates explicitly
that everyone must be gracious, respectful, and professional. If you're helping out
with triage, you are representing the Flutter team, and so you want to make sure to
make a good impression!

3. Help out as described in our [triage guide](./docs/triage/README.md)
3. Help out as described in our [triage guide](https://github.com/flutter/flutter/blob/main/docs/triage/README.md).
You won't be able to add labels at first, so instead start by trying to
do the other steps, e.g. trying to reproduce the problem and asking for people to
provide enough details that you can reproduce the problem, pointing out duplicates,
Expand All @@ -59,13 +59,13 @@ If you want to help us triage, you are very welcome to do so!
Flutter team.

4. Familiarize yourself with our
[issue hygiene](./docs/contributing/issue_hygiene/README.md) wiki page,
[issue hygiene](https://github.com/flutter/flutter/blob/main/docs/contributing/issue_hygiene/README.md) wiki page,
which covers the meanings of some important GitHub labels and
milestones.

5. Once you've been doing this for a while, someone will invite you to the flutter-hackers
team on GitHub and you'll be able to add labels too. See the
[contributor access](./docs/contributing/Contributor-access.md) wiki
[contributor access](https://github.com/flutter/flutter/blob/main/docs/contributing/Contributor-access.md) wiki
page for details.


Expand All @@ -79,9 +79,9 @@ that increase our test coverage, writing tests for issues others have filed, all
are really valuable contributions to open source projects.

If this interests you, you can jump in and submit bug reports without needing anyone's permission!
The #quality-assurance channel on our [Discord server](./docs/contributing/Chat.md)
The #quality-assurance channel on our [Discord server](https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md)
is a good place to talk about what you're doing. We're especially eager for QA testing when
we announce a beta release. See [quality assurance](./docs/releases/Quality-Assurance.md) for
we announce a beta release. See [quality assurance](https://github.com/flutter/flutter/blob/main/docs/releases/Quality-Assurance.md) for
more details.

If you want to contribute test cases, you can also submit PRs. See the next section
Expand Down Expand Up @@ -110,35 +110,35 @@ that describe these methodologies. The following list is ordered: you
are strongly recommended to go through these documents in the order
presented.

1. [Setting up your engine development environment](./docs/engine/contributing/Setting-up-the-Engine-development-environment.md),
1. [Setting up your engine development environment](https://github.com/flutter/flutter/blob/main/docs/engine/contributing/Setting-up-the-Engine-development-environment.md),
which describes the steps you need to configure your computer to
work on Flutter's engine. If you only want to write code for the
Flutter framework, you can skip this step. Flutter's engine mainly
uses C++, Java, and Objective-C.

2. [Setting up your framework development environment](./docs/contributing/Setting-up-the-Framework-development-environment.md),
2. [Setting up your framework development environment](https://github.com/flutter/flutter/blob/main/docs/contributing/Setting-up-the-Framework-development-environment.md),
which describes the steps you need to configure your computer to
work on Flutter's framework. Flutter's framework mainly uses Dart.

3. [Tree hygiene](./docs/contributing/Tree-hygiene.md),
3. [Tree hygiene](https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md),
which covers how to land a PR, how to do code review, how to
handle breaking changes, how to handle regressions, and how to
handle post-commit test failures.

4. [Our style guide](./docs/contributing/Style-guide-for-Flutter-repo.md),
4. [Our style guide](https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md),
which includes advice for designing APIs for Flutter, and how to
format code in the framework.

5. [Flutter design doc template](https://flutter.dev/go/template),
which should be used when proposing a new technical design. This is a good
which should be used when proposing a new technical design. This is a good
practice to do before coding more intricate changes.
See also our [guidance for writing design docs](./docs/contributing/Design-Documents.md).
See also our [guidance for writing design docs](https://github.com/flutter/flutter/blob/main/docs/contributing/Design-Documents.md).

[![How to contribute to Flutter](https://img.youtube.com/vi/4yBgOBAOx_A/0.jpg)](https://www.youtube.com/watch?v=4yBgOBAOx_A)

In addition to the documents, there is a video linked above on **How to contribute to Flutter**
from the [Flutter](https://youtube.com/c/flutterdev) YouTube channel,
there are many pages in [our docs](./docs/README.md),
there are many pages in [our docs](https://github.com/flutter/flutter/blob/main/docs/README.md),
and an article [Contributing to Flutter: Getting Started](https://medium.com/@ayushbherwani/contributing-to-flutter-getting-started-a0db68cbcd5b)
on Medium that may be of interest. For a curated list of pages see the sidebar
on the wiki's home page. They are more or less listed in order of importance.
Expand Down Expand Up @@ -179,13 +179,13 @@ to land. Consistently providing helpful code reviews is a valid and highly
encouraged path to joining this group.

For more information on how to earn commit access, please read the
[Contributor access guide](./docs/contributing/Contributor-access.md).
[Contributor access guide](https://github.com/flutter/flutter/blob/main/docs/contributing/Contributor-access.md).

### How to Review

If you are new to reviewing, start by:

1. **[Reading the Tree Hygiene guide.](./docs/contributing/Tree-hygiene.md#how)** It contains a 10-point checklist of what we look for (CLA, tests, API design, etc.).
1. **[Reading the Tree Hygiene guide.](https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#how)** It contains a 10-point checklist of what we look for (CLA, tests, API design, etc.).
2. **Leaving comments.** Even if you can't "Approve" a PR yet, pointing out a missing test or a style violation helps the author and saves the maintainers time.
3. **Being Gracious.** Follow our mantra: Be polite, explain the why, and provide clear next steps.

Expand All @@ -198,7 +198,7 @@ whether advocating for Flutter, answering questions in fora like
or [Reddit](https://www.reddit.com/r/flutterhelp/new/?f=flair_name%3A%22OPEN%22),
or creating content for our [documentation](https://docs.flutter.dev/)
or sites like [YouTube](https://www.youtube.com/results?search_query=flutter&sp=EgQIAxAB),
the best starting point is to join the #hackers-devrel [Discord channel](./docs/contributing/Chat.md).
the best starting point is to join the #hackers-devrel [Discord channel](https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md).
From there, you can describe what you're interested in doing, and go ahead and do it!
As others become familiar with your work, they may have feedback, be interested in
collaborating, or want to coordinate their efforts with yours.
Expand All @@ -208,12 +208,12 @@ API documentation
-----------------

Another great area to contribute in is sample code and API documentation. If this is an area that interests you, join our
[Discord](./docs/contributing/Chat.md) server and introduce yourself on the #hackers-devrel, #hackers-framework,
[Discord](https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md) server and introduce yourself on the #hackers-devrel, #hackers-framework,
or #hackers-engine channels, describing your area of interest. As our API docs are integrated into our source code, see the
"developing for Flutter" section above for a guide on how to set up your developer environment.

To contribute API documentation, an excellent command of the English language is particularly helpful, as is a careful attention to detail.
We have a [whole section in our style guide](./docs/contributing/Style-guide-for-Flutter-repo.md#documentation-dartdocs-javadocs-etc)
We have a [whole section in our style guide](https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#documentation-dartdocs-javadocs-etc)
that you should read before you write API documentation. It includes notes on the "Flutter Voice", such as our word and grammar conventions.

In general, a really productive way to improve documentation is to use Flutter and stop any time you have a question: find the answer, then
Expand All @@ -232,13 +232,13 @@ Releases

If you are interested in participating in our release process, which may involve writing release notes and blog posts, coordinating the actual
generation of binaries, updating our release tooling, and other work of that nature, then reach out on the #hackers-releases
channel of our [Discord](./docs/contributing/Chat.md) server.
channel of our [Discord](https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md) server.


Social events in the contributor community
------------------------------------------

Finally, one area where you could have a lot of impact is in contributing to social interactions among the Flutter contributor community itself.
This could take the form of organizing weekly video chats on our Discord, or planning tech talks from contributors, for example.
If this is an area that is of interest to you, please join our [Discord](./docs/contributing/Chat.md) and ping Hixie on the #hackers
If this is an area that is of interest to you, please join our [Discord](https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md) and ping Hixie on the #hackers
channel!
Loading
Loading