Skip to content

Commit 7babefb

Browse files
Merge branch 'main' into the-cell
2 parents 7738c2a + 913c480 commit 7babefb

48 files changed

Lines changed: 5006 additions & 161 deletions

File tree

Some content is hidden

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

.github/workflows/generate-rfc-frontmatter-json.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ jobs:
2020
run: |
2121
node rfcs-tooling/scripts/list-frontmatter.mjs text/*.md > rfc-data.json
2222
23-
- uses: actions/upload-artifact@v3
23+
- uses: actions/upload-artifact@v4
2424
with:
2525
name: rfc-data
2626
path: rfc-data.json
2727
if-no-files-found: error
28+
overwrite: true

.github/workflows/open-advancement-pr.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,9 @@ jobs:
8888
echo '{ "file": "${{ inputs.rfc-path }}", "number": "${{ inputs.rfc-number }}", "pr": "${{ steps.create-pr.outputs.pull-request-url }}", "advancementStage": "${{ inputs.new-stage }}" }' > advance-rfc-${{ inputs.rfc-number }}.json
8989
9090
- name: Upload artifact of open RFC PRs
91-
uses: actions/upload-artifact@v3
91+
uses: actions/upload-artifact@v4
9292
with:
9393
name: advancement-prs
9494
path: advance-rfc-${{ inputs.rfc-number }}.json
95+
overwrite: true
9596
if-no-files-found: error

0000-template.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ project-link: Leave as is
3030
suite: Leave as is
3131
-->
3232

33-
<-- Replace "RFC title" with the title of your RFC -->
33+
<!-- Replace "RFC title" with the title of your RFC -->
34+
3435
# RFC title
3536

3637
## Summary

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,8 @@ Read more about the RFC [Stages].
119119
## Stages
120120
[Stages]: #stages
121121

122+
Here are all the stages that an RFC can be in:
123+
122124
| Stage| Description| Requires FCP to enter? |
123125
| -----| -----------|----- |
124126
| [0 - Proposed](#Proposed) | A proposal for a change to Ember or its processes that is offered for community and team evaluation. | no |

text/0389-dynamic-tag-names.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
2-
stage: accepted
2+
stage: ready-for-release
33
start-date: 2018-10-14T00:00:00.000Z
4-
release-date: # FIXME
5-
release-versions: # FIXME
4+
release-date:
5+
release-versions:
66
teams:
77
- framework
88
prs:
9-
accepted: https://github.com/emberjs/rfcs/pull/389
9+
accepted: 'https://github.com/emberjs/rfcs/pull/389'
1010
project-link:
1111
meta:
12-
tracking: https://github.com/emberjs/rfc-tracking/issues/42
12+
tracking: 'https://github.com/emberjs/rfc-tracking/issues/42'
1313
---
1414

1515
# Dynamic tag names in glimmer templates.

text/0507-embroider-v2-package-format.md

Lines changed: 0 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -313,82 +313,6 @@ In today’s v1 addon packages, the `index.js` file is the main entrypoint that
313313

314314
It is no longer the `main` entrypoint of the package (see **Own Javascript**). Instead, it’s located via the `build` key in **Ember package metadata**, which should point at a Javascript file. `build` is optional — if you don’t have anything to say, you don’t need the file.
315315

316-
It is now an ECMA module, not a CJS file. The default export is a class that implements your build hooks (there is no required base class).
317-
318-
Here is a list of build hooks, each of which will have its own section below.
319-
320-
- configure
321-
- configureDependencies
322-
- skipBabel
323-
324-
I will describe the hooks using TypeScript signatures for precision. This does not imply anything about us actually using TypeScript to implement them. Each package has two type variables:
325-
326-
- `PackageOptions` is the interface for what options you accept from packages that depend on you. It's your package's build-time public API.
327-
- `OwnConfig` is the interface for the configuration that you want to send to your own code, which your code can access via the `getOwnConfig` macro. This is how you influence your runtime code from the build hooks.
328-
329-
### Build Hook: configure
330-
331-
```ts
332-
interface ConfigurationRequest<PackageOptions> = {
333-
options: PackageOptions,
334-
fromPackageName: string,
335-
fromPackageRoot: string,
336-
};
337-
configure<PackageOptions, OwnConfig>(
338-
requests: ConfigurationRequest<PackageOptions>[]
339-
): OwnConfig
340-
```
341-
342-
The configure hook receives an array of configuration requests. Each request contain the `PackageOptions` that a package that depends on this addon has sent to this addon. It also includes the `fromPackageName` and `fromPackageRoot` (the full path on disk to the requesting package) so that any configuration errors can blame the proper source.
343-
344-
`configure` deals with an array because multiple packages may depend on a single copy of our package. But our package can only be configured in one way (for example, we are either going to include some extra code or strip it out via the macro system, but we can't do both).
345-
346-
Addons are encouraged to merge configuration requests intelligently to try to satisfy all requesters. If it's impossible to do so, you can throw an error that explains the problem.
347-
348-
The `OwnConfig` return value must be JSON-serializable. It becomes available to your **Own Javascript** via the `getOwnConfig` macro, so that it can influence what code is conditionally compiled out of the build.
349-
350-
### Build Hook: configureDependencies
351-
352-
```ts
353-
configureDependencies(): {
354-
[dependencyName: string]: PackageOptionsForDependency | "disabled"
355-
}
356-
```
357-
358-
The `configureDependencies` hook is how you send configuration down to your own dependencies. For each package in your **allowed dependencies** you may return either the `PackageOptions` expected by that package, or the string `"disabled"`.
359-
360-
Any dependencies that you don't mention are considered active, but don't receive any configuration from you.
361-
362-
Any dependency for which you provide `PackageOptions` is active, and will receive those `PackageOptions` in its own `configure` hook.
363-
364-
If you set a package to `"disabled"`, it will not become active _because of your addon_. It may still become active if another package depends on it and leave it active.
365-
366-
When and only when a package is active:
367-
368-
- all standard Ember module types (`your-package/components/*.js`, `your-package/services/*.js`, etc) from its **Own Javascript** _that cannot be statically ruled out as unnecessary_ are included in the build as if some application code has `import`ed them. (What counts as “cannot be statically ruled out” is free to change as apps adopt increasingly static practices. This doesn’t break any already published packages, it just makes builds that consume them more efficient.)
369-
- all of the package's **Implicit Dependencies** are included in the build.
370-
- all **App Javascript** is included in the build.
371-
- all **Assets** are included in the build.
372-
- the package's **Active Dependencies** become active recursively.
373-
374-
Whether or not a package is active:
375-
376-
- directly-imported **Own Javascript** and **CSS** are available to any other package as described in those sections. The rationale for allowing `import` of non-active packages is that (1) we follow node module resolution and node module resolution doesn’t care about our notion of “active”, and (2) `import` is an explicit request to use the module in question. It’s not surprising that it would work, it would be more surprising if it didn’t.
377-
378-
The `configureDependencies` hook is the _only_ way to disable child packages. The package hooks are implemented as a class with no base class. There is no `super` to manipulate to interfere with your children’s hooks.
379-
380-
### Build Hook: skipBabel
381-
382-
```ts
383-
skipBabel(): { package: string, semverRange?: string }[]
384-
```
385-
386-
By default, all imported dependencies (and their recursive imported dependencies) go through the app's babel config. This ensures browser compatibility safety. However, we provide `skipBabel` as an opt-out to work around transpilation problems in cases where the developer has verified that transpilation of a given package isn't needed.
387-
388-
`skipBabel` returns a list of package names and optionally semver ranges. If no range is included, it defaults to `*`. This is a place where you're allowed to mentioned packages that are _not_ in your **allowed dependencies** because it may be necessary to talk about deeper dependencies within them. The `skipBabel` settings for all active addons are combined and if any addon skips babel for a given package & version, that causes the package to not be transpiled.
389-
390-
The semver range is useful to disambiguate if there are multiple versions of the same package involved in the app, and in cases where a developer has manually verified that transpilation isn't needed, it's good practice to use the semver range so that `skipBabel` doesn't accidentally apply to a future version of the package that may indeed need transpilation.
391-
392316
## What about Test Support?
393317

394318
v1 packages can provide `treeForTestSupport`, `treeForAddonTestSupport`, and `app.import` with `type="test"`. All of these features are dropped.

text/0560-add-equality-operators.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
---
2-
stage: accepted
2+
stage: ready-for-release
33
start-date: 2019-12-08T00:00:00.000Z
44
release-date:
55
release-versions:
66
teams:
77
- framework
88
prs:
9-
accepted: https://github.com/emberjs/rfcs/pull/560
9+
accepted: 'https://github.com/emberjs/rfcs/pull/560'
10+
ready-for-release: 'https://github.com/emberjs/rfcs/pull/1180'
1011
project-link:
1112
---
1213

text/0561-add-numeric-comparison-operators.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
---
2-
stage: accepted
2+
stage: ready-for-release
33
start-date: 2019-12-08T00:00:00.000Z
44
release-date:
55
release-versions:
66
teams:
77
- framework
88
prs:
9-
accepted: https://github.com/emberjs/rfcs/pull/561
9+
accepted: 'https://github.com/emberjs/rfcs/pull/561'
10+
ready-for-release: 'https://github.com/emberjs/rfcs/pull/1179'
1011
project-link:
1112
---
1213

text/0562-add-logical-operators.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
---
2-
stage: accepted
2+
stage: ready-for-release
33
start-date: 2019-12-08T00:00:00.000Z
44
release-date:
55
release-versions:
66
teams:
77
- framework
88
prs:
9-
accepted: https://github.com/emberjs/rfcs/pull/562
9+
accepted: 'https://github.com/emberjs/rfcs/pull/562'
10+
ready-for-release: 'https://github.com/emberjs/rfcs/pull/1181'
1011
project-link:
1112
---
1213

text/0669-tracked-storage-primitive.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,15 @@ teams:
77
- framework
88
prs:
99
accepted: https://github.com/emberjs/rfcs/pull/669
10+
discontinued: https://github.com/emberjs/rfcs/pull/1195
1011
project-link:
1112
---
1213

1314
# Tracked Storage Primitives
1415

16+
> [!IMPORTANT]
17+
> This RFC has been discontinued, because of the unergonomic APIs it suggested, and this RFC (in use case) has been replaced with [RFC#1071](https://github.com/emberjs/rfcs/pull/1071)
18+
1519
## Summary
1620

1721
Provide a low level primitive for storing tracked values:

0 commit comments

Comments
 (0)