Skip to content

Commit 010abf5

Browse files
authored
Merge branch 'main' into advance-rfc-1132
2 parents 3e72304 + be42ff2 commit 010abf5

21 files changed

Lines changed: 1345 additions & 145 deletions

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/0830-evolving-embers-major-version-process.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
stage: released
2+
stage: recommended
33
start-date: 2022-07-12T00:00:00.000Z
44
release-date:
55
release-versions:
@@ -13,6 +13,7 @@ prs:
1313
accepted: 'https://github.com/emberjs/rfcs/pull/830'
1414
ready-for-release: 'https://github.com/emberjs/rfcs/pull/878'
1515
released: 'https://github.com/emberjs/rfcs/pull/1057'
16+
recommended: 'https://github.com/emberjs/rfcs/pull/1058'
1617
---
1718

1819
# Evolving Ember's Major Version Process

text/0931-template-compiler-api.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
stage: released
2+
stage: recommended
33
start-date: 2023-05-31T00:00:00.000Z
44
release-date:
55
release-versions:
@@ -15,6 +15,7 @@ prs:
1515
accepted: 'https://github.com/emberjs/rfcs/pull/931'
1616
ready-for-release: 'https://github.com/emberjs/rfcs/pull/933'
1717
released: 'https://github.com/emberjs/rfcs/pull/1085'
18+
recommended: 'https://github.com/emberjs/rfcs/pull/1105'
1819
project-link:
1920
suite:
2021
---

text/0977-v2-app-format.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
---
2-
stage: accepted
3-
start-date: 2023-10-06
4-
release-date: # In format YYYY-MM-DDT00:00:00.000Z
2+
stage: released
3+
start-date: 2023-10-06T00:00:00.000Z
4+
release-date: 2025-10-15
55
release-versions:
6-
teams: # delete teams that aren't relevant
6+
ember-cli: 6.8.0
7+
teams:
78
- cli
89
- data
910
- framework
1011
- learning
1112
prs:
12-
accepted: https://github.com/emberjs/rfcs/pull/977
13+
accepted: 'https://github.com/emberjs/rfcs/pull/977'
14+
ready-for-release: 'https://github.com/emberjs/rfcs/pull/1062'
15+
released: 'https://github.com/emberjs/rfcs/pull/1147'
1316
project-link:
14-
suite:
17+
suite:
1518
---
1619

1720
<!---

0 commit comments

Comments
 (0)