Skip to main content

Featured

Week 12: Release 0.4 Part: 3

Release 0.4 Part 3 This is going to be my final post for this class which covers my final update on my Release 0.4. Earlier this week I made a PR that ports SearchBar to NextJS but I'm still waiting for it to be reviewed some more. I've had some feedback that I have implemented and have also requested a review again. Overall this Release went pretty smoothly for the actually GitHub side of things like setting up the issue, making the PR, and so on. In Release 0.3 I wasn't so certain on how this process happened with Telescope, but now I never had these issues for 0.4. Issue #1470 Fix #1470: Port SearchBar from Gatsby -> NextJS #1503 Did I Meet My Goals? Going into this release I had two main goals: 1. Setup the Issue/PR with no issues 2. Learn about NextJS I feel like I meet both of these goals at the end. I had no issues setting up my branch, updating my master, making the issue, making the PR, and following through on review comments so far. When it comes to learning m

Week 11: Lab 9: Releasing LinkStatus

The Lab

For this weeks I was working on releasing my project. Todo this I had to add my project to GO's package registry pkg.go.dev, setup proper versions, and update my doc's. 


Choosing a Package and Release Method

Since I was using GO I ended up using pkg.go.dev to release my project. At first it was pretty confusing finding out how to add my project to the registry, I tried many things but it actually ended up being pretty simple.

Searching through the internet for different answers to my problem I came across many different methods but none were exactly what I needed. One of the first solutions I looked at was using a program called GoReleaser which would handle the release of my program. After this I was looking for answers from GitHub issue posts and stack overflow, again these didn't point my in the right direction.

Later on after re-reading go.dev's instructions for adding a package I tried making a request to proxy.golang.org which was returned as a bad request. After this I tired there next option which was to search for the project using there search engine on the registry. This worked since it allowed my to make a request for my package to be added to there module proxy protocol (the list of current modules). 


Implement Packaging Steps

I didn't actually need to add any files for my packaging steps, I simply just need to request for my module to be added the registry. I already had my file structure meet Golangs recommendations.


Tagging and Releasing

To start I made a test tag called "v0.9.0" to make sure I understood the process of making tags. After this I made a new tag called "v1.0.0" when I added my package to the registry. I made a few patch's to my project to make it more understandable to a new user along the way as well. I had to actually  delete some tags before I pushed them to my master branch using "git tag -d tagname". If I made a new tag the registry would detect that after around 30 mins and update to the latest.


Update Your Docs

I made quite a few adjustments to my docs to make it easier for new users to install and use my program. Doing so had me making new tags and updating my package in the registry but it was no real issue to handle.


User Testing

For the user testing section of the lab I worked with Tony Vu. One of the major problems I see with GO is its documentation about adding projects to there registry and how little of methods there are to install other peoples projects. As far as I can understand I had two methods of installing his program, one being downloading the project and placing it in my GO source directory and performing a "go get ..." command, or to fork the repo and install locally. I choose to try and both and they seemed to work out. 

One of my major complaints for Tony's project as a user was that the help command gave little information about what the program can do. It simply just outputted how to use the version command. I suggested he should add more information for every flag that is offered by the program. Going by his instructions on the registry worked fine but it would be nice as a user to have easy access to the command list as I was using it.

For my user experience feedback Tony had no issues setting up my program, but my instructions on my ReadMe and Contributing files could be made easier to follow. To follow up with this feedback I'm going to make a new version to update my documentation.

To install and use my program you have a few options.

1. Fork and build my program, after this you can use my program anywhere on your system.

2. Download and place the project file in your GO src directory. After this run "go get LinkStatus"

Once either way is done the user can simply run "LinkStatus" and receive helpful information on how to use it.


Final Thoughts

This lab took a lot of research, but now I at least understand the process of releasing a project in GO. Since this is the final lab I wanted to reflect on the class in general a little bit here. Overall this class was a really good decision to take. At first I was really nervous and felt over my head, but as the class went on I started to understand the process more. My biggest mishap I would say was Release 0.3, I should of spent more time on this especially with the PR for a project outside of Telescope. Release 0.2 was actually really fun, and I ended up completed Hacktoberfest which was great, though I'm still waiting on my t-shirt. Overall though I feel a lot more comfortable with how Git works and with stepping in and working on other peoples projects.


Thanks,

-Matt

Comments

Popular Posts