Hacking Away in Week 3 of Hacktoberfest
Tags: hacktoberfest, opensource, csharp, cli
Published: 2023-10-20 12:28:22

Week 3 of this annual event brought a unique opportunity to contribute to [**explore-cli**](https://github.com/SmartBear-DevRel/explore-cli), a nifty utility CLI designed to facilitate data import and export in SwaggerHub Explore, an integral tool for API professionals. If you're not yet familiar with SwaggerHub Explore, it's a powerful component of the SwaggerHub platform, that streamlines data management for API designers and developers.

## The Issue: Elevating the `ExportedAt` Attribute

My contribution for this week was centred around a specific issue in the explore-cli repository. The issue, identified as [Issue #8](https://github.com/SmartBear-DevRel/explore-cli/issues/8), revolved around enhancing the `ExportedAt` attribute found in the `Program.cs` file. Initially, this attribute contained only a timestamp representing time, neglecting to include the date.

Here's a glimpse of the original code:

```c#
// construct the export object
var export = new ExportSpaces()
{
    Info = new Info() { ExportedAt = DateTime.UtcNow.ToLongTimeString() },
    ExploreSpaces = spacesToExport
};
```

In my quest to enhance this utility, I proposed a modification that incorporated both the date and time into the `ExportedAt` attribute:

```C#
var export = new ExportSpaces()
{
    Info = new Info() { ExportedAt = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ") },
    ExploreSpaces = spacesToExport
};
```

This adjustment introduced a standardized timestamp format, including both date and time, making it more informative and user-friendly.

## The Pull Request Journey

Following the code modification, I promptly created a [pull request](https://github.com/SmartBear-DevRel/explore-cli/pull/12) to merge these changes into the **explore-cli** repository. An interesting twist occurred during this process. The maintainers decided to create their own [pull request](https://github.com/Yousef-Majidi/explore-cli/pull/1) to my topic branch on the repository forked to [my GitHub](https://github.com/Yousef-Majidi/explore-cli).

This action essentially meant that they crafted the code to align with their precise requirements. Once I approved their pull request, their contributions seamlessly integrated into my initial pull request, a curious instance of a project's maintainers collaborating on their own project through an external contributor's repository. This raised an intriguing question: Why enlist external contributions when the project's maintainers are actively involved in the development process?

This question often arises in open-source projects, and the answer lies in the diversity of perspectives and ideas that external contributors bring to the table. Even when maintainers are deeply involved, fresh insights from the community can lead to innovative solutions and foster a sense of community and collaboration. It's a testament to the inclusive nature of open-source, where different viewpoints can lead to enhanced project quality and efficiency. This collaborative spirit is what makes open-source development a dynamic and ever-evolving ecosystem.

Nevertheless, this experience turned out to be highly educational for me. I took the opportunity to refine their code, aligning it with industry standards in terms of spacing, indentation, and overall formatting. It underscored the significance of code quality and consistency within the realm of open-source contributions.

## A Valuable Learning Experience

My involvement in Hacktoberfest Week 3 wasn't just about code changes; it was also a valuable learning experience. While my solution effectively achieved the desired outcome, the approach suggested by the project's author in their [pull request](https://github.com/Yousef-Majidi/explore-cli/pull/1) proved to be more efficient and concise.

In conclusion, my journey in Hacktoberfest Week 3 was an enriching experience. It highlighted the collaborative nature of open-source development and emphasized the significance of maintaining code quality. Despite the occasional twist, it showcased the value of collective efforts, both in terms of code enhancement and learning opportunities. Open source truly offers a fascinating journey where each contribution, no matter how small or significant, adds value to the larger landscape of technology and innovation.