Filer Project, Release 0.1

Overview

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.

Task List

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

Issues

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.

Conclusion

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.
One of my objectives for this course (apart from gaining greater knowledge of JavaScript) is to become more proficient with regard to the Git CLI, and use it rather than the Git GUI interface.
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.

Submission

My filed issue on GitHub: https://github.com/filerjs/filer/issues/665

My pull request: https://github.com/filerjs/filer/pull/688

Slack activity: https://seneca-open-source.slack.com/archives/C8WKYE7E3/p1548467314020900

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

Code Review 5: https://github.com/filerjs/filer/pull/711#pullrequestreview-198254675

Image: ‘Locky ransomware: source code
http://www.flickr.com/photos/132889348@N07/33091154720
Found on flickrcc.net

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s