Skip to content

Commit ec06ced

Browse files
committed
Initial commit of jmespath proposal repo
0 parents  commit ec06ced

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

README.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# JMESPath Enhancement Proposals
2+
3+
Any changes to the JMESPath specification
4+
(http://jmespath.org/specification.html) must have a JEP (JMESPath Enhancement
5+
Proposal) which is tracked in this repo. There are implementations of JMESPath
6+
in over 9 different languages, and we want to make sure that any modifications
7+
to the spec make sense for all JMESPath libraries. A JEP helps to work through
8+
the design process for new additions and ensures that the JMESPath community
9+
has a chance to give feedback before it's officially part of the specification.
10+
11+
12+
## Things that need a JEP
13+
14+
Any functionaly change that would require an update to the specification
15+
(http://jmespath.org/specification.html) requires a JEP.
16+
17+
This includes, but is not limited to:
18+
19+
* New syntax
20+
* New functions
21+
* New semantics/functionality
22+
23+
## Things that do not need a JEP
24+
25+
Anything that is specific to a JMESPath library does not need a JEP. You
26+
should defer to the specific library's contributing guide. This can include
27+
additional language specific APIs, extension points (e.g. adding custom
28+
functions), configuration options, etc.
29+
30+
## Guidelines for proposing new features
31+
32+
First, make sure that the feature has not been previously proposed. If it has,
33+
make sure to reference prior proposals and explain why this new proposal should
34+
be considered despite similar proposals not being accepted.
35+
36+
Writing a JEP can be a lot of work, so it can help to get initial guidance
37+
before getting too far. You can chat on the JMESPath gitter channel
38+
(https://gitter.im/jmespath/chat) to get an initial pulse of a new feature.
39+
40+
You can also create an issue in this repo with a rough proposal
41+
to get initial high level feedback. Keep in mind that creating
42+
an issue is only for initial feedback. If you'd like to move
43+
forward with the proposal you will still need to write a JEP
44+
and send a pull request (PR).
45+
46+
### Tenets of JMESPath
47+
48+
When proposing new features, keep these tenets in mind. Adhering to
49+
these tenets gives your proposal a higher likelihood of being accepted:
50+
51+
* JMESPath is not specific to a particular programming language. Avoid
52+
constructs that are difficult to implement in another language.
53+
* JMESPath strives to have one way to do something.
54+
* Features are driven from real world use cases.

0 commit comments

Comments
 (0)