Thank you for considering contributing to S.M.D! Here are some guidelines to help you get started:
We use Prettier and ESLint to ensure consistent code style across the project. Before submitting a pull request, make sure your code follows the style guidelines. To run Prettier and ESLint on your code, run the following commands:
npm run lint- To spellcheck, enforce code formatting and verify your code doesn't contain errors using ESLint and CSpellnpm run format- To automatically format your code according to the Prettier and ESLint configuration
To set up a development environment for this project, follow these steps:
- Install Node.js and Git on your system if you haven't already.
- Clone the repository to your local machine using
git clone https://github.com/noahweasley/SMD-Desktop.git. - Navigate to the project directory and install dependencies using
npm install. - Run the application using
npm start.
Add a .env file (optional) at the root of the project with these keys:
BINARY_LOCATION="folder/to/ytdlp/binary"
DB_FILEPATH="folder/to/sqlite/database"
PREF_FILEPATH="file/to/save/preferences.json"
WINDOW_DEBUG_ENABLED="true|false"
CAN_SWEEP_EMPTY_FILES="true|false"This will enable you to test and view the contents of files created by the application properly
- WINDOW_DEBUG_ENABLED would enable you to access chrome dev tools in some windows that restrict it in production
- CAN_SWEEP_EMPTY_FILES would enable you clear empty music files on app startup
- Run
npm run package:win32to build for Windows x32 - Run
npm run package:win64to build for Windows x64 - Run
npm run packageto build for all supported platforms - Run
npm run buildto build for all supported platforms and generate installers - Run
npm run rebuildto re-generate icons, build for all supported platforms and also generate installers
Please note: re-generating icons are only recommended when there are changes made to the app's icons and shouldn't be used, prefer npm run build instead.
Once you've completed these steps, you should be able to start making changes to the project and testing them locally.
- Fork the repository and create a new branch for your feature or bug fix
- Make your changes and commit them with clear commit messages
- Push your changes to your forked repository
- Open a pull request to the main repository, explaining the changes you've made and why they are necessary
We strive to maintain clear and up-to-date documentation for this project. To contribute to the documentation, please follow these guidelines:
- Use JSDoc syntax to clearly describe and document your code
- Keep the documentation up-to-date with the latest changes to the project. If you notice that documentation is out of date, please update it or create an issue to let someone know that it needs to be updated
- Follow the project's style guide for documentation. This includes using clear and concise language, formatting code examples properly, and providing context for any code snippets
- Use appropriate headings, bullet points, and other formatting techniques to make the documentation easy to read and navigate.
- If you're not sure how to document something or you need help with documentation, don't hesitate to ask for guidance from the project maintainers
Here are a list of the VS Code extensions used in the development of S.M.D:
- Prettier formatter (esbenp.prettier-vscode)
- Code Spell Checker (streetsidesoftware.code-spell-checker)
- ES Lint (dbaeumer.vscode-eslint)
- NPM Script Advanced (daez.npm-scripts-advanced)
If you encounter any bugs or issues while using the project, please create an issue in the repository. Please include a clear and detailed description of the issue, steps to reproduce it, and any relevant information about your environment.