DEV Community


Posted on

Enhancing Explore.CLI

Greetings, fellow developers! Today, I'm happy to share my recent adventure with the Explore.Cli project, a journey marked by tackling challenging features and collaborative problem-solving, ultimately leading to the exciting release of Explore.CLI version 0.4.0.

Introduction to Explore.CLI

During Hacktoberfest 2023, I discovered Explore.Cli, an intriguing command-line tool that piqued my curiosity. This tool offers a range of functionalities designed to enhance user experience working with SwaggerHub, sparking my interest to dive deeper and contribute.

Initial Steps and First Contributions

My first engagement with Explore.Cli involved fixing a bug in their export feature, a process I detailed in a blog post you can find here. This initial step marked the beginning of a deeper journey into the project's development.

As I familiarized myself with Explore.Cli, several open issues caught my attention. Despite initial hesitations, I revisited two particular issues, deciding to take on the challenge of resolving them.

Issue #6: Enhancing Export Functionality

The first issue I tackled was issue #6, aimed at adding the ability to specify both a path and a filename for exporting. This required the introduction of a new Option variable:

var exportPath = new Option<string>(
    name: "--export-path", 
    description: "The path for exporting files. It can be either a relative or absolute path")
    { IsRequired = false };
Enter fullscreen mode Exit fullscreen mode

I also adjusted the Handler for the exportSpacesCommand to integrate this new option:

exportSpacesCommand.SetHandler(async (ec, ep, en, v) =>
    { await ExportSpaces(ec, ep, en, v); },
Enter fullscreen mode Exit fullscreen mode

Subsequently, the ExportSpaces method was modified to include these new options, and the was updated to reflect these changes, culminating in pull request #13.

Building Upon the Foundation: Issue #4

Next, I addressed issue #4, which involved adding a feature for users to select specific spaces to export. Building on my previous work, I ensured compatibility and consistency by developing this feature on top of the initial issue branch, incorporating all commits from pull request #13 into pull request #14.

Refining and Resolving Challenges

Throughout this process, I encountered various challenges, including aligning my code with the project's coding style, handling additional scenarios, and implementing file system permissions checks. Feedback from the project author prompted significant refinements and improvements, including code refactoring and unit testing.

Workflow and Platform-Specific Considerations

An interesting twist occurred when some of my tests failed on a workflow run. This issue arose due to the GetInvalidFileNameChars() and GetInvalidFilePathChars() methods behaving differently on Linux compared to Windows. Initially, I addressed this by creating a custom array for invalid characters, but I later realized that this was unnecessary, as the project was intended for Windows use. This was a valuable lesson in understanding project scope and platform-specific considerations.

Release of Explore.Cli v0.4.0

Finally, after overcoming these challenges and learning from them, I'm excited to announce that Explore.Cli v0.4.0 is officially out!. This release marks a significant milestone in my open-source journey.

Reflecting on the Experience

This experience with Explore.Cli` has been both challenging and rewarding, reinforcing the collaborative and supportive nature of the open-source community. Each contribution, from code to conversations, has been a valuable part of my growth as a developer.

Stay tuned for more insights and developments, and as always, I encourage you to dive into the project, contribute, and share your expertise. Happy coding!

Top comments (0)