Release 0.4 - Release
Tags: opensource
Published: 2021-12-11 01:44:33

This week I finished all of the issues I was working on for my 0.4 release assignment. 

| Issues | Pull Requests |
| ------ | ------------- |
| [#111](https://github.com/Seneca-ICTOER/IPC144/issues/111) | [PR #139](https://github.com/Seneca-ICTOER/IPC144/pull/139) |
| [#122](https://github.com/Seneca-ICTOER/IPC144/issues/122) | [PR #140](https://github.com/Seneca-ICTOER/IPC144/pull/140) |
| [#123](https://github.com/Seneca-ICTOER/IPC144/issues/123) | [PR #141](https://github.com/Seneca-ICTOER/IPC144/pull/141) |
| [#127](https://github.com/Seneca-ICTOER/IPC144/issues/127) | [PR #146](https://github.com/Seneca-ICTOER/IPC144/pull/146) |

I think I was able to do a good job meeting my goals I gave myself in my planning phase of this release. I was able to finish the issues well on schedule while balancing my other courses like I hoped and I was able to properly audit and fix both issues #122 and #123 without needing too many changes after review. What I learned from those two issues is the importance to read and checkout other issues/pull requests, especially for smaller repos. As I was told in the review for both my issues, I learned that the project recently made changes with how we would format the frontmatter. In [PR #142](https://github.com/Seneca-ICTOER/IPC144/pull/142) we no longer use the slug for pages due to inconsistency with links and we also need to include a description to follow the standardized Frontmatter as updated in [PR #143](https://github.com/Seneca-ICTOER/IPC144/pull/143).

So I updated the Frontmatter to match the new standard, removing the `slug` and adding a `description`:
```md
---
id: text-files
title: Text Files
sidebar_position: 1
description: Stream data using standard library functions to access persistent text.
---
```

While it is fine to simply communicate with other devs to learn about changes that are made, and by no means are you expected to know absolutely everything that is happening in a project, its still very helpful to checkout other pull requests and issues occasionally to see if any significant changes are going to be made. But most importantly of all its best to simply keep up with group communications, most projects will have a Discord or Slack group to communicate with all the developers working on the project. Because generally standardization changes like this would be discussed/announced. But I think occasionally reading other issues/PRs is just a good skill to practice for any developer working in open source.

As for my Issue #127, I was supposed to add some CSS that would make all tables generated from the markdown files to be centered. I have taken several web development courses before but CSS was never a main focal point in them, rather it was more of a side lesson. So I never really had much confidence in my CSS so I didn't really know how to tackle this issue. HumpD my professor, gave a suggestion to wrap the tables in a custom `<div>` element with a `class` so we could center the tables easily in the global CSS. I had trouble figuring out how to do this because I wasn't sure how to get the markdown tables wrapped globally without manually adding a `<div>` to each file. After some searching I realized that I could simply apply the CSS to `<table>` elements directly instead of a wrapper. So I tried to do the following:

```css
table {
  margin-left: auto;
  margin-right: auto;
}
```
However, for some reason the tables were not being centered even with these properties. So I was wondering if I actually had to wrap the tables after all. Thus I asked my professor how I would go about doing so, but he showed me that I was missing another property to center the tables.

```css
table {
  margin-left: auto;
  margin-right: auto;
  width: fit-content;
}
```
By adding `width: fit-content;` the table's width would be properly calculated and would in turn allow both `margin` properties to be applied properly. That allowed the tables to be centered. So I learned that to center objects using CSS the width is important to be determined.

So throughout my PRs I was able to solve them by either referencing other pull requests from the community, getting reviews to my pull requests, or by discussing in the comments with other developers how to make some changes. Communication is a very vital part of open source and it is something I really appreciate a lot. I usually try to solve things by myself through trial & error and google searches, but having a community you can go ask for help is incredibly nice to have to fall back on, especially when some issues/questions can be incredibly specific to a project. All in all this was a great learning experience for me developing in open source. So until next time take care!