Commit Prefix - Docs
● `[DOC] Fixed typo in blah.`
● `[DOC beta] Fixed typo in blah.`
● `[DOC release] Fixed typo in blah.`
Slide 11
Slide 11 text
Bug-fixes
https://flic.kr/p/2xvHcU
Slide 12
Slide 12 text
Its messed up, lemme fix it
● Add test showing regression
● Fix issue
● Prefix commit
Slide 13
Slide 13 text
Commit Prefix - Bug-fixes
● `[FEATURE ember-metal-zomg] Fix blah`
● `[BUGFIX beta] Fix dummy`
● Only severe regressions will be pulled into
release channel.
Slide 14
Slide 14 text
Unless its a security vuln...
● Email [email protected]
● Work with the Core Team on a fix
● Read the full policy at: emberjs.com/security
Slide 15
Slide 15 text
Features
https://flic.kr/p/4CrXVC
Slide 16
Slide 16 text
Huh, what are features?
● New API’s
● Backwards compat changes to API’s
● Hidden behind a feature flag
Slide 17
Slide 17 text
What is a feature flag?
It’s just an `if` block used by the build process.
How does it work?
● `defeatureify` processes builds
● Can strip flagged code
Slide 20
Slide 20 text
What is enabled?
Check the `features.json` file.
Slide 21
Slide 21 text
What does this mean?
`true`
`false`
`null`
Enable & remove flags
Disable & remove
Disable & leave
Slide 22
Slide 22 text
Features in Channels
Channel Flags In Build
Canary Yes
Beta No
Release No
Slide 23
Slide 23 text
Can I enable features in
beta/release builds?
YES!!!
But you may not want to…
Slide 24
Slide 24 text
YES, PLEASE DO!!!
Testers welcome, the more the
merrier!
Can I enable features in
canary builds?
Slide 25
Slide 25 text
Awesome, how do I do it?
EmberENV = {
FEATURES: {
'query-params-new': true
}
};
Slide 26
Slide 26 text
How can I contribute one?
● Add to features.json (null value)
● Add to FEATURES.md
● Hide changes behind flags
● Good tests (also behind flags)
● Prefix commit
Slide 27
Slide 27 text
Choosing flag name
Package Name + Short Feature Name
`ember-metal-zomg`
Slide 28
Slide 28 text
Add to features.json
● Add as last line
● Set value to `null`
● Rebase on EVERY change
Slide 29
Slide 29 text
Add to FEATURES.md
Add an entry with a clear description.
Include PR link for further reading.
Slide 30
Slide 30 text
Hide changes behind flags:
if (Ember.FEATURES.isEnabled('ember-metal-zomg')){
// Your feature code here
} else {
// Code to execute when disabled
}
Slide 31
Slide 31 text
Check the “Enable Opt Features” check box in
the QUnit UI.
How do I run the tests?
Slide 32
Slide 32 text
Commit Prefix - Features
Use FEATURE + feature name:
`[FEATURE ember-metal-zomg]`
Slide 33
Slide 33 text
Merge me, pretty please?
● Review takes time
● Please be patient
● Please be polite :D
Slide 34
Slide 34 text
OK, its merged, now what?
● Security Audit
● Reviewed by Core Team
● Go/No-Go Decision
Slide 35
Slide 35 text
Release Cycle
https://flic.kr/p/7JxoN6
Slide 36
Slide 36 text
Process
● 3 Channels
● 6 Week Release Cycles
Slide 37
Slide 37 text
Canary
● New Features
● Bugfixes
● tldr; Everything