-
Project Initialization & Metadata
- Update
package.json:- Add a concise and informative
description. - Add relevant
keywordsfor discoverability. - Set
licenseto "MIT" and createLICENSEfile with the current year and "Ion Gireada" as the author. - Set
authorfield by asking the user for their name and email. - Create
repository,bugs, andhomepageentries for the GitHub repositoryioncakephper/stdcli.
- Add a concise and informative
- Update
-
Development Tooling & Automation
- Set up linting and formatting:
- Install
eslint,prettier,eslint-plugin-prettier, andeslint-config-prettier. - Create
.eslintrc.jsonand.prettierrc.jsonconfiguration files. - Add
lintandformatscripts topackage.json. - Verify that
npm run lintandnpm run formatrun without errors.
- Install
- create .gitignore file with standard content for Node.
- Set up unit testing framework (e.g., Jest).
- Add a test script to
package.json. - Write a basic test for the "Hello, stdcli!" command.
- Implement configuration file support (e.g., using
cosmiconfigor a simple JSON file). - Add a command to view current configurations.
- Set up linting and formatting:
-
Core CLI Implementation
- Implement core CLI structure with
src/cli.js(shebang,commander.js),src/index.js(exportedrunfunction), and updatepackage.jsonaccordingly. - Implement subcommands (e.g.,
stdcli create <type>). - Add option parsing for commands (e.g.,
stdcli command --option value). - Implement robust error handling for CLI commands.
- Provide clear and concise user feedback for command execution.
- Implement core CLI structure with
-
Community & Contribution Guidelines
- Create
CONTRIBUTING.mdandCODE_OF_CONDUCT.mdwith standard contributing guidelines and a code of conduct. - Update
README.mdto include "Contributing" and "License" sections with links to the corresponding files.
- Create
-
General Instructions
- Regularly review and update
README.mdto meet high standards of clarity, completeness, and comprehensiveness.
- Regularly review and update
-
Deployment & Maintenance
- Prepare the project for npm publication (e.g.,
package.jsonfields). - Choose between using
.npmignoreorpackage.filesfor npm publications - Document the release process.
- Set up continuous integration (CI) for automated testing and deployment.
- Plan for future updates and versioning.
- Prepare the project for npm publication (e.g.,