The main purpose of Release 0.1 is to understand and become familiar with the software, tools and Git commands used to contribute to open-source projects on GitHub.
To meet the submission requirements for the first open-source contribution and see a whole picture, I created a high-level list of tasks:
- Open the Filer project on GitHub and fork the project to have all full control
- Choose one of the files in the tests/ directory
- Create a new issue on GitHub
- Use cd dir command to create directory to keep my Git
- Use git clone myURL/fiddler.git command to clone URL with SSH
- Use git checkout -b issue-665 command to create a new branch and switch to that branch
- npm install
- Use npm test command to run a test for the cloned code before any updates
- Update the code by replacing var with const or let and adding strict mode
- Use git status command to check the current state of my repository
- Use git add test/spec/fs.access.spec.js command to stage my changes
- Use git commit -m “Fixed #665: Replaced var with let or const and added strict mode fs.access.spec.js”command to commit
- Use git push origin issues-665 command to publish new local commits on a remote server
- Create a new pull request from GitHub to the original repo with adding a description of the code changes
- After sending the pull request, CodeCov Report is generated by GitHub
- Write my blog and participate in discussions
- Submit Name, Issue URL, and Pull Request URL
Initially, the Release 0.1 task looked pretty simple, but when I started working on this problem, I realized I had to install and setup a significant amount of additional software including Git,Visual Studio Code, Node.js, and Node.js Package Manager.
I also had to get and add an SSH key to my GitHub setting in order to clone the project with SSH key instead of cloning it using HTTPS.
At one stage, I had difficulty with running the npm install setup command. The solution to my problem can be found here.
I also needed to update my recently modified code to replace “let” with “const”, add changes, commit and push the new changes.
It took me some time to feel more comfortable with using the Git command line interface, or CLI and its commands, as in the past I mostly used Sourcetree and only occasionally used the Git command line. Sourcetree is a free simple Git client GUI for Mac and Windows used to manage large team projects with multiple branches and commits.
The Sourcetree GUI can make the whole team process more manageable. It provides a lot of great visual features simplifying working with Git; a better UX when switching between branches and projects.
Nevertheless, I prefer to use Git command line to resolve any issues as it is more powerful, gives me a more granular control over processes and sometimes it is only one choice for certain tasks.
I do concede, however, both Git CLI and Git GUI can for the most part be used interchangeably and that they each have their own advantages.
My filed issue on GitHub: https://github.com/filerjs/filer/issues/665
My pull request: https://github.com/filerjs/filer/pull/688
Code Review 1: https://github.com/filerjs/filer/pull/704
Code Review 2: https://github.com/filerjs/filer/pull/701
Code Review 3: https://github.com/filerjs/filer/pull/696
Code Review 4: https://github.com/filerjs/filer/pull/695