Giter Site home page Giter Site logo

coding's People

Contributors

lucasilverentand avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

coding's Issues

Implement @eslint-plugin-jsdoc

Add node plugin to ESLint configs

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.

πŸ’‘ README generator

Feature Description

πŸ—‚ What part of the app does the feature apply to?
Documentation

πŸ’‘ What problem does the feature solve?
Having to spend a lot of time creating README files for each project.

πŸ“– How should we implement the feature?
Create a simple node CLI tool that generates the README based on a YAML file in the project.

VS Code commit extension

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.

πŸš€ Release 1.8.0

Stable

Feature Improvements
- improve body editor
  • βœ… Changelog approved
  • βœ… Release was cleared
  • βœ… Release was created successfully

Improve changelogs on releases

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

πŸš€ Release 1.5.0

Stable

- minor bug fixes and improvements
  • βœ… Changelog approved
  • βœ… Release was cleared
  • βœ… Release was created successfully

πŸ’‘ Commit Tool

Feature Description

πŸ—‚ What part of the app does the feature apply to?
Git

πŸ’‘ What problem does the feature solve?
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.

πŸ“– How should we implement the feature?
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.


Additional Information

πŸ“± Which platforms/devices does this feature apply to?
macOS, Linux, and Windows (all the places a developer could write code)

πŸ“ Additional notes on the feature that are important
We must provide additional tools that can use these commit messages to bump versions and create changelogs.


βœ… Feature Checklist

  • Assigned priority to this issue (including labels)
  • Tag this issue with the correct labels (remove needs-labels too)
  • Added this issue to the project board
  • Create a feature/{feature-name} branch
  • #3
  • #2
  • Changelog generation
  • Categories listing

Block release when there is no version bump

When there is no version bump to be done, do not create a release issue.

Other things to do:

  • Change category CI to bump a patch version, in case the CI changes the way software is published or packaged.

Feature: TSConfigs

Feature Description

πŸ—‚ What part of the app does the feature apply to?
Config packages

πŸ’‘ What problem does the feature solve?
Deciding how to configure the TypeScript compiler can take some time to get it right.

πŸ“– How should we implement the feature?
Publish multiple packages that contain pre-configured TSConfigs that can then be extended upon.


Additional Information

πŸ“± Which platforms/devices does this feature apply to?
all

πŸ“ Additional notes on the feature that are important


βœ… Feature Checklist

  • Assigned priority to this issue (including labels)
  • Tag this issue with the correct labels (remove needs-labels too)
  • Added this issue to the project board
  • Create a feature/{feature-name} branch

πŸ’‘ Dart Linter Config

Feature Description

πŸ—‚ What part of the app does the feature apply to?
Linter Configs

πŸ’‘ What problem does the feature solve?
Keeping a consistent code format across our Flutter based projects.

πŸ“– How should we implement the feature?
We should provide a YAML file through a RAW url on GitHub that can then be referenced in the config of the dart linter.


Additional Information

πŸ“± Which platforms/devices does this feature apply to?
All platforms

πŸ“ Additional notes on the feature that are important
We need to make sure it can be used from both VSCode and GitHub Actions


βœ… Feature Checklist

  • Assigned priority to this issue (including labels)
  • Tag this issue with the correct labels (remove needs-labels too)
  • Added this issue to the project board
  • Create a feature/{feature-name} branch

πŸš€ Release 1.8.1

Stable

- minor bug fixes and improvements
  • βœ… Changelog approved
  • ⏳ Waiting for clearance (check the box to release)
  • 🚦 Waiting for release clearance

Fix setup-flutter path

The setup-flutter action does not correctly link the path to the flutter command making it unreachable from the ci scripts.

πŸ’‘ Checklist Action

Feature Description

πŸ—‚ What part of the app does the feature apply to?
actions

πŸ’‘ What problem does the feature solve?
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.

πŸ“– How should we implement the feature?
Make an action that can be run on issue creation, and change.


Things to implement:

Issue & PR comment

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.

Remember successful run of pre-commit hook

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)

🐞 Hook skipping broken

Bug Description

🐜 Describe the bug
When using the --skip-hooks option on the create command within the commit tool, it does not skip the hooks.

🐞 First line can be too long for GitHub in commit tool

Bug Description

🐜 Describe the bug
When using the commit tool for authoring commit messages the first line can become too long.

πŸ—‚ What part of the app does the bug affect?
commit creation

πŸ“ Steps to reproduce the behavior

  1. run npx @onezerocompany/commit create
  2. go through the process of filling in the details
  3. at the scope fill in the max length scope
  4. at the subject fill in the max length subject
  5. the first line will be longer than the allowed limit on GitHub and be cut-off

🧐 What is the expected behavior
The first line should be limited to the limit of 72 characters.


Prioritization

πŸ“ˆ What priority would you give this bug?
Medium, as the pull request will be rejected when using a too-long first line

Command for creating commits

What does the tool have to do

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:

  • category (from categories.yaml file)
  • scope (short lowercase string between 3-20 chars, no special chars, no numbers)
  • subject (between 10 - 48 chars, all lowercase no dot at the end)
  • body (long text with no rules except start with uppercase and end with dot, optional)
  • breaking (yes/no, if yes body must be filled otherwise run body again)
  • issues (list of numbers)
  • co-authors (list of GitHub users)
  • signing off
  • file selector for commit

none of the values should have multiple whitespace or empty lines, also all values should be trimmed.

Feature: ESLint Configs

Feature Description

πŸ—‚ What part of the app does the feature apply to?
Published packages

πŸ’‘ What problem does the feature solve?
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.

πŸ“– How should we implement the feature?
Publish the @onezerocompany/eslint-config package to GitHub Packages that contains the shared config for all projects.


Additional Information

πŸ“± Which platforms/devices does this feature apply to?
macOS & Linux (for now)

πŸ“ Additional notes on the feature that are important
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.


πŸ™ GitHub Checklist

  • Assigned priority to this issue (including labels)
  • Tag this issue with the correct labels (remove needs-labels too)
  • Added this issue to the project board
  • Create a feature/{feature-name} branch

βœ… Feature Checklist

  • add rules for javascript
  • add rules for typescript
  • add rules for react
  • support Deno
  • support Node
  • support chai, mocha
  • include import plugin
  • keep filenames correct

Setup-Flutter Action

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

  • Downloading and Installing Flutter + Dart
  • Fetching the latest automatically
  • Specifying specific channel + version
  • Setting up authentication

πŸ’‘ Legal Document Generator

Feature Description

πŸ—‚ What part of the app does the feature apply to?
Legal documents

πŸ’‘ What problem does the feature solve?
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.

πŸ“– How should we implement the feature?
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.


Additional Information

πŸ“± Which platforms/devices does this feature apply to?

πŸ“ Additional notes on the feature that are important


βœ… Feature Checklist

  • Assigned priority to this issue (including labels)
  • Tag this issue with the correct labels (remove needs-labels too)
  • Added this issue to the project board
  • Create a feature/{feature-name} branch

Remove file limit on changes

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.

🐞 No changed files case for commit tool

Bug Description

🐜 Describe the bug
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.

πŸš€ Release 1.9.1

Stable

Bug Fixes
- fix missing docker entrypoint
  • βœ… Changelog approved
  • βœ… Release was cleared
  • βœ… Release was created successfully

πŸš€ Release 1.6.0

Stable

New Features
- add vscode theme for onezero
  • βœ… Changelog approved
  • βœ… Release was cleared
  • βœ… Release was created successfully

Feature: Prettier Config

Feature Description

πŸ—‚ What part of the app does the feature apply to?
Configs

πŸ’‘ What problem does the feature solve?
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.

πŸ“– How should we implement the feature?
Provide a config for prettier that can be consumed as an NPM package that makes sure we use the same settings across all projects.


βœ… Feature Checklist

  • Assigned priority to this issue (including labels)
  • Tag this issue with the correct labels (remove needs-labels too)
  • Added this issue to the project board
  • Create a feature/{feature-name} branch

πŸš€ Release 1.8.2

Stable

- minor bug fixes and improvements
  • βœ… Changelog approved
  • βœ… Release was cleared
  • βœ… Release was created successfully

πŸš€ Release 1.8.3

Stable

- minor bug fixes and improvements
  • βœ… Changelog approved
  • ⏳ Waiting for clearance (check the box to release)
  • 🚦 Waiting for release clearance

πŸš€ Release 1.5.0

Stable

New Features
- add fallback logic for settings
  • βœ… Changelog approved
  • βœ… Release was cleared
  • βœ… Release was created successfully

πŸš€ Release 1.9.0

Stable

New Features
- add docker inside devcontainer
  • βœ… Changelog approved
  • βœ… Release was cleared
  • βœ… Release was created successfully

πŸ“˜ Coding Guides

These are the guides we still need to write

  • Getting started with code signing
  • Setting up the coding environment

🐞Create tool fails with git environment

Bug Description

🐜 Describe the bug
The create tool fails to start when there is no git repo yet. This case should be handled gracefully instead of not working.

πŸ—‚ What part of the app does the bug affect?
commit creation

πŸ“ Steps to reproduce the behavior

  1. open an empty folder without git repo.
  2. run the 'commit create' command

Release manifests

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 tracker issue action

Feature Description

πŸ—‚ What part of the app does the feature apply to?
Release creation

πŸ’‘ What problem does the feature solve?
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.

πŸ“– How should we implement the feature?
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:

  1. Get the commit comments and extract changes since the last release
  2. Calculate the version bump to do
  3. Stop in case there is no release to be done
  4. Create an issue tracker comment
  5. Update on each comment and create releases accordingly

Pull Request commit checks

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.

πŸš€ Release 1.7.0

Stable

Feature Improvements
- block non bumping issues
  • βœ… Changelog approved
  • βœ… Release was cleared
  • βœ… Release was created successfully

General CLI implementation

We need to add a general help message and define the commands that can be run with the onezero-commit CLI.

Create releases using different token

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.