Skip to content

Commit

Permalink
Misc docs cleanup and fixes (flutter#155501)
Browse files Browse the repository at this point in the history
  • Loading branch information
parlough authored Sep 24, 2024
1 parent 35d5714 commit 22570da
Show file tree
Hide file tree
Showing 49 changed files with 229 additions and 109 deletions.
9 changes: 7 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,12 @@ for how to set up your development environment, or ask in #hackers-test on Disco
Developing for Flutter
----------------------

If you would prefer to write code, you may wish to start with our list of good first issues for [Flutter](https://github.com/flutter/flutter/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) or for [Flutter DevTools](https://github.com/flutter/devtools/labels/good%20first%20issue). See the respective sections below for further instructions.
If you prefer to write code, consider starting with the list of good
first issues for [Flutter][flutter-gfi] or for [Flutter DevTools][devtools-gfi].
Reference the respective sections below for further instructions.

[flutter-gfi]: https://github.com/flutter/flutter/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22
[devtools-gfi]: https://github.com/flutter/devtools/labels/good%20first%20issue

### Framework and Engine

Expand Down Expand Up @@ -162,7 +167,7 @@ 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-deverl, #hackers-framework,
[Discord](./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.

Expand Down
2 changes: 1 addition & 1 deletion dev/conductor/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ unlock your ssh key for the session; if you do not, each time the conductor
attempts to interact with a remote, the user will be prompted to enter their ssh
key password.

** Confirm that your personal github clone of flutter/flutter is named flutter and flutter/engine is named engine. If not you will need to use flags to override the defaults.
** Confirm that your personal GitHub clone of flutter/flutter is named flutter and flutter/engine is named engine. If not you will need to use flags to override the defaults.

## Usage

Expand Down
27 changes: 18 additions & 9 deletions dev/conductor/RELEASE_ONBOARDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,61 +2,70 @@

Googler facing documentation can be found at go/flutter-release-workflow.

### Responsiblity
### Responsibility

Release engineer is responsible for:
* Branch alignment and/or Sheparding cherry picks
* Branch alignment and/or shepherding cherry picks
* Decision making related to cherry pick risk
* Verification that pre and post submits pass prior to publishing
* Contributor facing communication
* Some public facing post release comunication
* Some public facing post release communication

In the past (and possibly in the future) there was a distinction between a release engineer and release manager.
For now the responsiblitys are the same and we will refer to the person managing the release as a release engineer.
For now the responsibilities are the same and we will refer to the person managing the release as a release engineer.

## Onboarding
One time setup instructions for new or returning relase engineers.

One time setup instructions for new or returning release engineers.

### Groups/Permissions

#### Join flutter-hackers on github
#### Join flutter-hackers on GitHub

https://github.com/orgs/flutter/teams/flutter-hackers/members

#### [Googler only] Join mdb/flutter-infra

Possibly not required
https://ganpati2.corp.google.com/propose_membership?parent=9147533327&child=$me.prod

#### Join the flutter-announce google group

Ping any current release engineer to add you as an owner and give you publish access.
https://groups.google.com/g/flutter-announce/members?q=role:owner&pli=1

TODO include screenshot

#### [Googler only] Install tool-proxy-client
From a glinux machine run
`sudo apt install tool-proxy-client`

From a glinux machine run `sudo apt install tool-proxy-client`.

`tool-proxy-client` is the tool that enables/enforces 2 party authorization for controlled builds.

#### [Googler only] Confirm access to release calendar

Public and Beta releases and timelines
go/dash-team-releases

#### [Googler only] Join release chatroom

Release hotline https://chat.google.com/room/AAAA6RKcK2k?cls=7

#### [Googler only] join mdb/flutter-release-team

Controls who can approve 2 party auth requests.
https://ganpati2.corp.google.com/propose_membership?parent=100213927583&child=$me.prod

#### Setup conductor

Conductor is a dart command line interface for common release tasks.
Its instructions are in README.md.


#### [Googler only] Confirm access to Apple signing cert update doc

go/flutter-signing-apple-contracts
Also confirm access to valentine entries listed in that doc.

#### [Googler only] Access release engineer doc

Confirm access to go/release-eng-retros
2 changes: 1 addition & 1 deletion dev/devicelab/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ DeviceLab tests are run against physical devices in Flutter's lab (the

Tasks specify the type of device they are to run on (`linux_android`, `mac_ios`,
`mac_android`, `windows_android`, etc). When a device in the lab is free, it
will pickup tasks that need to be completed.
will pick up tasks that need to be completed.

1. If the task succeeds, the test runner reports the success and uploads its
performance metrics to Flutter's infrastructure. Not all tasks record
Expand Down
4 changes: 2 additions & 2 deletions docs/Flutter-Self-Service-Index.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ Flutter provides multiple functionality through self-service services. Most of t
</td>
<td>[Link](./platforms/android/Testing-Android-Changes-in-the-Devicelab-on-an-Emulator.md)
</td>
<td>Flutter Github Wiki page under the “Android Development” Section.
<td>Flutter GitHub Wiki page under the “Android Development” Section.
</td>
</tr>
<tr>
Expand Down Expand Up @@ -285,7 +285,7 @@ Flutter provides multiple functionality through self-service services. Most of t
</td>
<td><a href="https://github.com/flutter/engine/security/code-scanning">Link</a>
</td>
<td><a href="https://github.com/flutter/engine/security">Engine github security tab</a>.
<td><a href="https://github.com/flutter/engine/security">Engine GitHub security tab</a>.
</td>
</tr>
<tr>
Expand Down
3 changes: 2 additions & 1 deletion docs/In-case-of-emergency.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
## If flutter.dev is down

If one of our web sites is down, please ping `@emergency` on our [Discord server](./contributing/Chat.md).
If one of our websites is down,
please ping `@emergency` on our [Discord server](./contributing/Chat.md).

## If you find a security vulnerability

Expand Down
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
This wiki is primarily aimed at engineers building or making contributions to Flutter.

If you are new to Flutter, then you will find more general information on the Flutter project, including tutorials and samples, on our Web site at [flutter.dev](https://flutter.dev). For specific information about Flutter's APIs, consider our API reference which can be found at the [api.flutter.dev](https://api.flutter.dev/).
If you are new to Flutter, then you will find more general information on the Flutter project, including tutorials and samples, on our website at [flutter.dev](https://flutter.dev). For specific information about Flutter's APIs, consider our API reference which can be found at the [api.flutter.dev](https://api.flutter.dev/).

If you want to know what we're likely to do in the future, our [roadmap](./roadmap/Roadmap.md) may be of interest.

Expand Down
4 changes: 2 additions & 2 deletions docs/about/Glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ Here are some terms that we use in the Flutter project and what they mean:

- **Dynamic patching**. The ability to update the Dart code of an app in the field by downloading a patch (of sorts) and providing it to the Dart VM, probably requiring a restart of the application.

- **Embedder**. The core of the Flutter engine is platform agnostic. But platforms that run Flutter applications need platform specific logic to wire up rendering to the native window toolkit, handle input events, etc.. This platform specific logic is referred to as the Flutter embedder. Embedders interact with the engine using a [very low level C/C++ API](https://github.com/flutter/engine/blob/043d92c48abdebdad926569bc204a59c5cf20a11/shell/platform/embedder/embedder.h). While this API exposed by the engine to its embedders is platform agnostic, it is usually not suitable for developers used to the tools, frameworks and libraries on that specific platform (UIKit using Objective-C/Swift on iOS, or, Android APIs using Java on Android). To make interacting with the engine more ergonomic to developers on a specific platform, there are platform specific embedding APIs ([iOS](https://docs.flutter.io/objcdoc/) and [Android](https://docs.flutter.io/javadoc/)). These APIs provide higher level abstractions but are optional.
- **Embedder**. The core of the Flutter engine is platform agnostic. But platforms that run Flutter applications need platform specific logic to wire up rendering to the native window toolkit, handle input events, etc.. This platform specific logic is referred to as the Flutter embedder. Embedders interact with the engine using a [very low level C/C++ API](https://github.com/flutter/engine/blob/0a3423abd79c282c8a5e84a24e03733c98b31144/shell/platform/embedder/embedder.h). While this API exposed by the engine to its embedders is platform agnostic, it is usually not suitable for developers used to the tools, frameworks and libraries on that specific platform (UIKit using Objective-C/Swift on iOS, or, Android APIs using Java on Android). To make interacting with the engine more ergonomic to developers on a specific platform, there are platform specific embedding APIs ([iOS](https://api.flutter.dev/ios-embedder) and [Android](https://api.flutter.dev/javadoc/)). These APIs provide higher level abstractions but are optional.

- **Embedding**. Flutter provides "embedders" to port Flutter behavior to specific platforms, as defined elsewhere in this glossary. However, embedders use a [very low level C/C++ API](https://github.com/flutter/engine/blob/043d92c48abdebdad926569bc204a59c5cf20a11/shell/platform/embedder/embedder.h) which would feel unnatural to typical developers of a platform, e.g., Android or iOS. A Flutter "embedding" is a counterpart to an "embedder", which introduces common platform tools for interacting with Flutter. The Android embedding offers a `FlutterActivity`, `FlutterFragment`, `FlutterView`, etc: [Android embedding](https://docs.flutter.io/javadoc/). The iOS embedding offers a `FlutterViewController`, etc: [iOS embedding](https://docs.flutter.io/objcdoc/). An embedding + an embedder signifies the entire story of how Flutter ports to a specific platform.
- **Embedding**. Flutter provides "embedders" to port Flutter behavior to specific platforms, as defined elsewhere in this glossary. However, embedders use a [very low level C/C++ API](https://github.com/flutter/engine/blob/0a3423abd79c282c8a5e84a24e03733c98b31144/shell/platform/embedder/embedder.h) which would feel unnatural to typical developers of a platform, e.g., Android or iOS. A Flutter "embedding" is a counterpart to an "embedder", which introduces common platform tools for interacting with Flutter. The Android embedding offers a `FlutterActivity`, `FlutterFragment`, `FlutterView`, etc: [Android embedding](https://api.flutter.dev/javadoc/). The iOS embedding offers a `FlutterViewController`, etc: [iOS embedding](https://api.flutter.dev/ios-embedder). An embedding + an embedder signifies the entire story of how Flutter ports to a specific platform.

- **Engine**. The C++ (and Java and ObjectiveC and...) side of Flutter. Defined in the `engine` repository. Includes Skia, Dart, and other low-level components. Exposed as `dart:ui` and other Dart libraries to author code.

Expand Down
4 changes: 2 additions & 2 deletions docs/about/The-Engine-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ responsibility of the embedder to create and manage threads (and their message
loops) for the Flutter engine. The embedder gives the Flutter engine task
runners for the threads it manages. In addition to the threads managed by the
embedder for the engine, the Dart VM also has its own thread pool. Neither the
Flutter engine or the embedder have any access to the threads in this pool.
Flutter engine nor the embedder have any access to the threads in this pool.

### Task Runner Configuration

Expand Down Expand Up @@ -122,7 +122,7 @@ Interacting with the Flutter engine in any way must happen on the platform
thread. Interacting with the engine on any other thread will trip assertions in
unoptimized builds and is not thread safe in release builds. There are numerous
components in the Flutter engine that are not thread safe. Once the Flutter
engine is setup and running, the embedder does not have to post tasks to any of
engine is set up and running, the embedder does not have to post tasks to any of
the task runners used to configure the engine as long as all accesses to the
embedder API are made on the platform thread.

Expand Down
2 changes: 1 addition & 1 deletion docs/contributing/Chat.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<img src="https://github.com/flutter/flutter/assets/551196/1381071b-e482-4e07-b096-60e9219d3ff7" width=300 align=right alt="">

The Flutter team uses a [Discord server](https://discord.com/channels/608014603317936148). [This is invite link for Flutter's Discord server](https://discord.gg/ht477J5PyH). Please do not share either link directly, instead share links to this page.
The Flutter team uses a [Discord server](https://discord.com/channels/608014603317936148). [This is the invite link for Flutter's Discord server](https://discord.gg/ht477J5PyH). Please do not share either link directly, instead share links to this page.

The server is open to the public, though some channels are intended only for people who are actively contributing. **See the #welcome channel for instructions on posting to the server (you won't be able to see the channels until you acknowledge the rules there).**

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Preqrequisites
## Prerequisites

* Linux, Mac OS X, or Windows
* Linux, macOS, or Windows

* `git` (used for source version control)

Expand Down
8 changes: 4 additions & 4 deletions docs/contributing/Style-guide-for-Flutter-repo.md
Original file line number Diff line number Diff line change
Expand Up @@ -477,7 +477,7 @@ Unfortunately, the reality is that everyone starts knowing nothing, and we do no

For this reason, avoid using terms without first defining them, unless you are linking to more fundamental documentation that defines that term without reference to the API you are documenting.

For example, a fancy widget in the Material library can refer to the `StatefulWidget` documentation and assume that the reader either knows about the `StatefulWidget` class, or can learn about it by following the link and then later returning to the documentation for the fancy widget. However, the documentation for the `StatefulWidget` class should avoid assuming that the reader knows what a `State` class is, and should avoid defering to it for its definition, because `State` could is likely to defer back to `StatefulWidget` and the reader would be stuck in a loop unable to grasp the basic principles. This is the documentation equivalent of a bootstrapping problem.
For example, a fancy widget in the Material library can refer to the `StatefulWidget` documentation and assume that the reader either knows about the `StatefulWidget` class, or can learn about it by following the link and then later returning to the documentation for the fancy widget. However, the documentation for the `StatefulWidget` class should avoid assuming that the reader knows what a `State` class is, and should avoid deferring to it for its definition, because `State` could is likely to defer back to `StatefulWidget` and the reader would be stuck in a loop unable to grasp the basic principles. This is the documentation equivalent of a bootstrapping problem.

Another way to express this is that API documentation should follow a similar layering philosophy as code. The goal of documentation is not just to act as a refresher for experts, but to act as a tutorial for new developers.

Expand Down Expand Up @@ -834,7 +834,7 @@ than "lasagna" code (where each section of the code is cleanly layered and separ
### Avoid using `extension`.

Extension methods are confusing to document and discover. To an end developer,
they appear no different than the built in API of the class, and discovering
they appear no different than the built-in API of the class, and discovering
the documentation and implementation of an extension is more challenging than
for class members.

Expand Down Expand Up @@ -1169,7 +1169,7 @@ documented top-level library intended to be imported by users.

The definition of "New" changes as code grows and time passes. If the code
needed a replacement version the odds of needing another replacement in the
future is higher. Instead find a name that represents the idea being being used
future is higher. Instead find a name that represents the idea being used
or replaced.


Expand Down Expand Up @@ -1205,7 +1205,7 @@ Example:

TODOs should include the string TODO in all caps, followed by the GitHub username of
the person with the best _context_ about the problem referenced by the TODO in
parenthesis. A TODO is not a commitment that the person referenced will fix the
parentheses. A TODO is not a commitment that the person referenced will fix the
problem, it is intended to be the person with enough context to explain the problem.
Thus, when you create a TODO, it is almost always your username that is given.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Animated GIFs are useful for documentating animations. Heres how to make them:
Animated GIFs are useful for documenting animations. Here's how to make them:

## Capturing video of an Android device

Expand Down
2 changes: 1 addition & 1 deletion docs/contributing/issue_hygiene/Popular-issues.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ When deciding what to work on, we usually focus on issues that have a lot of thu

Some popular issues are topics on which we cannot find a good way to make progress. Since those issues where we _do_ make progress get closed, the result is that [the list of most-popular issues](https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc) is now full of issues where we have conspicuously not made progress!

In the interests of transparency, this wiki page discusses the status of the ten most popular issues. It is only updated occasionally and so may not be entirely up to date; for the most up to date information, please see the latest comments on the relevant issue. (Please avoid asking for an update on issues, otherwise they become full of people asking for updates and nobody can find the actual updates.)
In the interests of transparency, this wiki page discusses the status of the ten most popular issues. It is only updated occasionally and so may not be entirely up to date; for the most up-to-date information, please see the latest comments on the relevant issue. (Please avoid asking for an update on issues, otherwise they become full of people asking for updates and nobody can find the actual updates.)

_See also: [the list of popular issues including closed issues](https://github.com/flutter/flutter/issues?q=is%3Aissue+sort%3Areactions-%2B1-desc), which shows that popular issues do get closed. 😅_

Expand Down
2 changes: 2 additions & 0 deletions docs/contributing/testing/Flutter-Test-Fonts.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ Thanks to that, the `FlutterTest` font generally provides more precise and font-
**Example**

You can expect this test to pass on all platforms (currently with the exception of the web HTML renderer):

```dart
final painter = TextPainter(
text: const TextSpan(
Expand All @@ -35,6 +36,7 @@ expect(lineMetrics.descent, 3.5); // 0.25em * 14.0pt
// 'text' is 4 glyphs. Most glyphs are as wide as they are tall.
expect(lineMetrics.width, 14.0 * 4);
```

While with the `Ahem` font you would get [slightly different metrics on different platforms](https://github.com/flutter/flutter/issues/62819), since they use different font engines to scale the font.

### Glyphs
Expand Down
Loading

0 comments on commit 22570da

Please sign in to comment.