onezerocompany / coding Goto Github PK
View Code? Open in Web Editor NEWCoding guides and tools for OneZero
License: MIT License
Coding guides and tools for OneZero
License: MIT License
We still need to built in a system that fetches the list of current releases and based on that determines the next version
Since we have several projects that require the Firebase emulators to develop, we should publish an image that can be used by all projects.
Add @eslint-plugin-jsdoc to the eslint configs enforcing proper documentation of the code that is being written.
Rules to implement:
When a release gets deleted this should update the release issue
Since we write a bunch of code that runs on Node.js, we should add rules to ESLint that check for things we might be doing wrong in relation to Node.js.
Documentation
Having to spend a lot of time creating README files for each project.
Create a simple node CLI tool that generates the README based on a YAML file in the project.
Since most of our development if not all happens within VS Code it would be very nice to have a visual tool that helps us commit. Since we already have a tool that works in the command line, we can use that and add an extension layer on top of it.
The syntax colors are not being correctly displayed
Feature Improvements
- improve body editor
When creating releases, the changelogs should be improved to match the changelog that was specified in the release issue before approving the creation of the release
- minor bug fixes and improvements
Git
When writing commit messages, it's easy to change how you write them over time. It's also hard to interpret the commit messages with other scripts when they don't follow a pre-defined template.
We should make a tool using Deno and compile those to binaries that can be run on each development environment. Developers should then use these to write and validate their commit messages. OneZero should also use git hooks to prevent committing anything that doesn't follow the guidelines we coded into the tool.
macOS, Linux, and Windows (all the places a developer could write code)
We must provide additional tools that can use these commit messages to bump versions and create changelogs.
When there is no version bump to be done, do not create a release issue.
Other things to do:
Config packages
Deciding how to configure the TypeScript compiler can take some time to get it right.
Publish multiple packages that contain pre-configured TSConfigs that can then be extended upon.
all
Linter Configs
Keeping a consistent code format across our Flutter based projects.
We should provide a YAML file through a RAW url on GitHub that can then be referenced in the config of the dart linter.
All platforms
We need to make sure it can be used from both VSCode and GitHub Actions
- minor bug fixes and improvements
Since we are going to transition most Node.js code to Bun, it would improve development time to pre-install the binary inside the container
The setup-flutter action does not correctly link the path to the flutter command making it unreachable from the ci scripts.
actions
Keeping issues tidy is a real hassle and requires a lot of work, so we should lighten this load by automating as much as possible.
Make an action that can be run on issue creation, and change.
Create a comment on the issue or pull request that is used to track the progress and to indicate what still needs to happen to it for it to be valid.
When running the commit tool a second time because for instance a value was entered incorrectly, the pre-commit hook can be automatically skipped since it already ran successfully the first time (if the code hasn't changed since).
We should write to a dot file that contains a hash of the files and checks if they are still the same since the last successful run, and if they are still the same, skip the pre-commit hook step.
Originally posted by @lucasilverentand in #70 (comment)
When using the --skip-hooks option on the create command within the commit tool, it does not skip the hooks.
When using the commit tool for authoring commit messages the first line can become too long.
commit creation
npx @onezerocompany/commit create
The first line should be limited to the limit of 72 characters.
Medium, as the pull request will be rejected when using a too-long first line
The prompt tool in onezero-commit needs to ask a couple questions and then compile the commit message and apply it to the current ongoing commit.
Questions to implement:
none of the values should have multiple whitespace or empty lines, also all values should be trimmed.
Published packages
ESLint will keep the coding style of Javascript and Typescript files consistent across multiple projects, teams, and developers. It can also be automated to make sure all repositories comply.
Publish the @onezerocompany/eslint-config package to GitHub Packages that contains the shared config for all projects.
macOS & Linux (for now)
The package might need to be split up into multiple smaller ones that contain only parts of the config to optimize the runtime of ESLint and potentially also increase the compatibility with other projects.
We need to use the flutter SDK in a bunch of workflows. That's why an action that makes it easy to setup Flutter & Dart easily on any platform. There should also be support for caching and authentication to pub.dev
Legal documents
All of our apps require legal documents like Terms of Agreement and Privacy Policies. It can be very time consuming to come up with all the documents for them. That's why we should make a generator that can generate those documents for us.
We should come up with a yaml schema that can be used to define what things an app accesses and does to then generate the legal documents, also we should integrate those with fastlane to then update the App Store details.
When creating a commit using the commit tool, there is a limit on how many files can be selected, this should be removed since often a change might update more files at the same time.
Currently having no changed files in a git environment makes the tool crash. It should actually exit gracefully and even skip the pre-commit hooks aswell.
Bug Fixes
- fix missing docker entrypoint
New Features
- add vscode theme for onezero
Configs
In order to keep consistent formatting across many different file types and projects, we should use the Prettier code formatter. It's opinionated and consistent meaning we don't have to come up with all the rules and many other projects already use it, which in turn makes it easier for other developers to join our projects since they will be used to the formatting.
Provide a config for prettier that can be consumed as an NPM package that makes sure we use the same settings across all projects.
- minor bug fixes and improvements
- minor bug fixes and improvements
New Features
- add fallback logic for settings
Since the release-issues action should be ready for use outside the testing repository, we should implement it here in the coding repository.
New Features
- add docker inside devcontainer
The create tool fails to start when there is no git repo yet. This case should be handled gracefully instead of not working.
commit creation
When creating a release a release-manifest.json
should be included that contains all the details of the release as it was specified in the release issue.
Release creation
When working on an app, we need to publish many updates. By offloading the task of creating releases to an automated system, we can keep the development momentum much higher.
We need to develop an action that creates issues per release, which in turn can be used to release the version to different release tracks (alpha, beta, release).
The issue tracker should write a comment which has checkmarks that can be ticked (but only by approved users) otherwise the comment automatically reverses the checkmark.
Logic flow:
When creating an issue it should also be assigned to a list of users that were specified in release issues settings file.
We should make a GitHub Action that checks all the commit messages on a pull request. This way, we can easily assure that only commits that comply with our rules can be committed.
Feature Improvements
- block non bumping issues
When all items in an issue are either successful or skipped it should close the issue automatically
When creating a commit with the commit tool, ask to first pull and continue
We need to add a general help message and define the commands that can be run with the onezero-commit CLI.
When creating releases using the release-issues action, a different API token should be used to make sure that the actions after creating the release get run. Because GitHub prevents actions being triggered from anything another action does.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.