Tweekathon!
WHY We created tweekathon?
- Tweek is getting close to OSS milestone
- We want to get some experience in managing OSS
- We want to get more feedback from the rest of the teams.
- We wanted others to be involved in Tweek roadmap.
WHY Should you attend?
- Opportunity to experience in OSS contribution.
- Influence our biggest OSS project yet.
- Bring your own features.
- Tweek is unique among its landscape.
- Experiment with different tools.
Tweek OVerview
- 5 services
- Tweek Context DB (Couchbase) - 3rd party
- Tweek Rules Repository (git) - 3rd party
- Tweek API (.Net Core)
- Tweek Editor (node.js)
- Tweek Management (node.js)
- 2 repositories
- Tweek - main repository
- Tweek.JPad - Tweek JPAD rules engine
Tweek Context DB
- Couchbase
- Fast, durable memory based document/kv db.
- Storage for context
- Identities properties
- Fixed configuration
- Consumed by Tweek API using Couchbase implementation of context driver.
TWEEK RULES repository
- Git service
- Contains
- Key definition (JPad rules)
- Key meta data
- Consumed by
- Tweek Management (for serving rules)
- Tweek Editor (for reading/editing keys)
- Using Tweek management for validating new rules.
TWEEK Mangement
- Repo: Soluto/Tweek
- services/management
- Based on Node.js
- Used nodegit
- Bundling Tweek gitdata
- Serving rules for tweek-api
- Validating new changes of git against Tweek-Api
Tweek api
- Repo: Soluto/Tweek
- services/api
- Written in .Net Core
- Based on Asp.Net
- Api for:
- Calculating configurations
- Updating user context
TWEEK Editor
- Repo: Soluto/Tweek
- services/editor
- Writting in Node.js
- Use express, nodegit,
react, redux, react-project, recompose, rxjs. - UI for managing tweek
TWEEK.JPAD
- Repo: Soluto/Tweek.JPad
- JPad file parser and rules evaluator
- Based on F#
requirements
- Docker account
- Docker compatible platform (win 10/mac)
Contribution Flow
- Create branch "{issueNumber}_my_branch_name"
- Commit
- Push
- Github pull request
- Iterate
- Commit
- Push
- Review
- Merge
DEMO
ISSUE pool
accessibility through editor
- Features that expose Tweek functionality through editor.
- Examples:
- Context/Fixed configuration viewer/editor
- Audit page
- Query page
- Identities/Schema editor
Internals
- Features that touch Tweek internals
- Examples:
- Adding support for more string operators in f#
- Adding trace-data to rule parser
- Changing dependent keys context access
Small fixes/improvements
- Adopting best practices in some areas.
- Examples
- Minor security features (flags, zap, etc...)
- Adding tweek-mangement diagnostics from tweek-api
- Copy paste using $in operator
Experimental
- MVP for new experimental features.
- Examples:
- Micro analytics service
- Test suite for key changes
- Indicator for key activity
and there are many more...
- https://github.com/soluto/tweek/issues?q=is%3Aissue+is%3Aopen+label%3Atweekathon
Thanks
Have a great hack day!
Tweekathon
By yshayy
Tweekathon
- 1,116