Skip to content

Commit 6893e1e

Browse files
committed
docs updates, deprecation warning
1 parent 270a54e commit 6893e1e

File tree

3 files changed

+52
-57
lines changed

3 files changed

+52
-57
lines changed

CONTRIBUTING.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ If you already have something using port 80, the tests won't work. You can eithe
2525
Once the server is running, if you prefer viewing the tests in a browser, they can be found at: http://localhost/runner.cfm
2626

2727
On the CLI:
28-
- `$ box testbox run` does a one-time run
29-
- `$ box testbox watch` will re-run the tests when relevant files are saved
28+
29+
- `$ box testbox run` does a one-time run
30+
- `$ box testbox watch` will re-run the tests when relevant files are saved
3031

3132
I've also included a Makefile with some helpful aliases for managing the test server, and running tests
3233

README.md

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,6 @@ A minimalist Feature Flag engine for CFML apps
1010

1111
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](CODE_OF_CONDUCT.md)
1212

13-
> #### ⚠️ UNPROVEN! DANGER! ⚠️
14-
>
15-
> I've only _just_ put this into production in my company's product. So far so good, but it's a sample size of 1 and a test duration measured in days. (29 Jul 2021)
16-
>
17-
> For what it's worth, we've got good tests and they pass. Use at your own risk. 🤷‍♂️
18-
1913
### Minimalist? What's included?
2014

2115
- Rules engine
@@ -138,8 +132,8 @@ This is likely to change, but for now here's what they look like:
138132

139133
### Flag Rule Types
140134

141-
- `%` "Percentage": A random % of users are in the active segment
142-
- `filter` "Filter": You specify an attribute from the userAttributes object, and a comparison value and operator, and anyone who passes the comparison is in the active segment (flag is ON for them)
135+
- `%` "Percentage": X% of users are selected at random to have the feature enabled.
136+
- `filter` "Filter": You specify an `attribute` from the userAttributes object, the `operator` and a `comparator` (comparison value), and anyone who passes the comparison is in the active segment (flag is ON for them)
143137
- `nobody`: Flag is OFF for all users
144138
- `everybody`: Flag is ON for all users
145139
- More TBD? If you have ideas, [hit me up!](https://github.com/atuttle/semaphore/issues)
@@ -150,13 +144,13 @@ Flags can have multiple rules. At present, Semaphore only supports flag-wide AND
150144

151145
The default is `ANY`. If you want to require all rules match, set `matchRules: 'ALL'` on your flag.
152146

153-
# Why not just use config settings?
147+
> **Deprecation warning:** In version 1.x the `matchRules` property will be removed in support of [better and/or support](https://adamtuttle.codes/blog/2022/semaphore-0.3-and-1.0/).
154148
155-
You could do that, sure. But the value proposition of feature flags is that they can be toggled independendtly of deploying code changes to your application, and often much more rapidly. They can take effect as quickly as you can update the flag state on your application.
149+
# Why not just use config settings?
156150

157-
(How you do that is left as an exercise for you. Once I've implemented it in my app I'll probably blog about how I did it and link to that blog post from here.)
151+
You could do that, sure. But the value proposition of feature flags is that they can be toggled independendtly of deploying code changes to your application, and often much more rapidly. They can take effect as quickly as you can update the flag state on your application. How you do that is left as an exercise for you.
158152

159-
ALSO, feature flags allow you to dynamically segment the user population. As seen above, I've already got support for %-based rollouts, as well as specific user-attribute and environment-attribute filtering.
153+
ALSO, feature flags allow you to dynamically segment the user population. As seen above, I've already got support for %-based rollouts, as well as specific user-attribute and environment-attribute filtering. Those would be _possible_ to implement with config settings, but probably not worth the effort.
160154

161155
# Why roll your own?
162156

box.json

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,45 @@
11
{
2-
"name": "semaphore",
3-
"version": "0.1.0",
4-
"author": "Adam Tuttle <https://adamtuttle.codes>",
5-
"location": "ForgeboxStorage",
6-
"homepage": "https://github.com/atuttle/semaphore",
7-
"documentation": "https://github.com/atuttle/semaphore",
8-
"repository": {
9-
"type": "git",
10-
"URL": "https://github.com/atuttle/semaphore"
11-
},
12-
"bugs": "",
13-
"slug": "semaphore",
14-
"shortDescription": "A minimalist feature flags engine for CFML applications",
15-
"description": "A minimalist feature flags engine for CFML applications",
16-
"instructions": "See README.md",
17-
"changelog": "",
18-
"type": "modules",
19-
"keywords": ["feature flags", "flag", "flags", "deploy"],
20-
"private": false,
21-
"license": [
22-
{
23-
"type": "MIT",
24-
"URL": "https://github.com/atuttle/semaphore/blob/main/LICENSE.md"
25-
}
26-
],
27-
"contributors": ["Adam Tuttle <https://adamtuttlecodes.com>"],
28-
"dependencies": {},
29-
"devDependencies": {
30-
"testbox": "^4.2.1+400"
31-
},
32-
"installPaths": {
33-
"testbox": "tests/testbox/"
34-
},
35-
"scripts": {},
36-
"ignore": ["**/.*", "/test/", "/tests/"],
37-
"testbox": {
38-
"runner": [
39-
{
40-
"default": "http://localhost/runner.cfm"
41-
}
42-
],
43-
"directory": "tests.specs"
44-
}
2+
"name": "semaphore",
3+
"version": "0.3.0",
4+
"author": "Adam Tuttle <https://adamtuttle.codes>",
5+
"location": "ForgeboxStorage",
6+
"homepage": "https://github.com/atuttle/semaphore",
7+
"documentation": "https://github.com/atuttle/semaphore",
8+
"repository": {
9+
"type": "git",
10+
"URL": "https://github.com/atuttle/semaphore"
11+
},
12+
"bugs": "",
13+
"slug": "semaphore",
14+
"shortDescription": "A minimalist feature flags engine for CFML applications",
15+
"description": "A minimalist feature flags engine for CFML applications",
16+
"instructions": "See README.md",
17+
"changelog": "",
18+
"type": "modules",
19+
"keywords": ["feature flags", "flag", "flags", "deploy"],
20+
"private": false,
21+
"license": [
22+
{
23+
"type": "MIT",
24+
"URL": "https://github.com/atuttle/semaphore/blob/main/LICENSE.md"
25+
}
26+
],
27+
"contributors": ["Adam Tuttle <https://adamtuttlecodes.com>"],
28+
"dependencies": {},
29+
"devDependencies": {
30+
"testbox": "^4.2.1+400"
31+
},
32+
"installPaths": {
33+
"testbox": "tests/testbox/"
34+
},
35+
"scripts": {},
36+
"ignore": ["**/.*", "/test/", "/tests/"],
37+
"testbox": {
38+
"runner": [
39+
{
40+
"default": "http://localhost/runner.cfm"
41+
}
42+
],
43+
"directory": "tests.specs"
44+
}
4545
}

0 commit comments

Comments
 (0)