Creating the First Release and Link Checker 1.0
Tags: opensource
Published: 2020-12-06 04:17:14

For a few months now, I've been working on an [app to check links](https://github.com/fluentinstroll/Link-Checker) in files. This app has grown with me through these months while I worked on other open-source projects and although I don't feel like it's perfect, I do feel like I achieved something really important to myself.

Today, I'm releasing [Link Checker through npm](https://www.npmjs.com/package/l-checker) and I can't wait to take well-deserved break from the work, but also to continue development on the app if only to clean it up and fix more bugs.

Creating a release actually isn't too difficult for Node cli developers. One must simply [create an account](https://www.npmjs.com/signup) on the npm website and [start into publishing the app](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry). I found hte process relatively painless, aside from [figuring out how to connect my npm account to my local version](https://docs.npmjs.com/cli/v6/commands/npm-adduser).

Learning how to set up npm and publish these things will be invaluable in the future, especially if I create a Node package that I use in a different project - I absolutely needed to know these things and I'm so happy I learned. 

For other users, it might be different, but I didn't alter my code too much. I spent some time changing my version number and reading up about [package.json](https://docs.npmjs.com/cli/v6/configuring-npm/package-json) and how it affects my app but otherwise, I felt totally comfortable simply publishing the app and testing it out in other folders to a smooth release.

However, I ran into a snag when I contacted a friend of mine, who worked with me on our [PRJ666 project](https://github.com/PhilipMroczkowski/Social-Interactions) and asked him to test out the app and let me know if he is confused at all.

Well, he wasn't. The instructions are pretty simple for a developer to understand! On Linux at least.

On Windows, however, it's not so easy.

![lab9_1](https://dev-to-uploads.s3.amazonaws.com/i/acnwx988oqihnqognynn.png)

Hmm... I wonder why that's the case...

So I spent some time looking up fixes and reasons why npm scripts might not play nice with Windows and eventually settled on... well that they just don't play nice. And without a kind of step-by-step instruction for changing environment variables and installing npm globally (which I'm not even sure is the problem), I don't think I'll have Windows working in the way I intended. So I figured out a little workaround. If the user installs Link Checker with npx, npm will then install the app and run it at the same time - essentially performing the `node index.js` from within its own little framework. This works well enough to run the program on windows and if my developer friend finds it easy to use - we can close the book on that one.

So here it is. [Link Checker](https://www.npmjs.com/package/l-checker). You should be able to follow the instructions in the description but here's a little more in-depth information.

1. You must have some kind of text file. When I used this app on a docx file it took from it the links to the pictures used in the file but not the links - weird stuff but I want to take a look at that. Any file that has text in it will work, doesn't matter if it's a .log or a .src, if it has text, it works.

2. I'm fairly certain you would be able to use it in a Node project of your own through require() but it's not built for that and I have no documentation on how that would work. It's a good next step though.

3. Finally, as said in the description - just `npm install l-checker` and go wild. The description has everything you might need to know about how to use it and I'll update it as I add more features.

If you want to contribute, please visit the [git repository](https://github.com/fluentinstroll/Link-Checker) and shoot me a pull request.

That's it for now, the culmination of a semester's worth of work and one of the most informative courses I've ever taken. It's not over though, tomorrow I'll be writing about my progress in working on my final assignment or Release 0.4, and at the end of next week I'll have a whole lot to write about what I learned in this course and how valuable I think all of it was.

For now. Peace.