Url tester release

This week we had to work on releasing our URL checker. As I wrote my tool in Node.js I selected to use the npm registry to publish my package.

In order to publish the package to npm we need to have the following:

  • package.json file — must include tool name and version number
  • README file

In order to publish we need to register first and create a user profile.

To publish the package is require 2 simple steps:

  1. log in to account ( npm login) → provide credentials
  2. register the package → npm publish

published package → urltest-2.


Mattermost

This week I worked on finalizing the migration of the post_markdown component to the typescript of the Mattermost web app repository.

To remind, the ticket required to migrate all files including the test files under component/post_markdown to typescript.

As I mentioned in the previous post, I had some errors while migrating the code that was generated by the typescript:

  1. Property ‘message_source’ does not exist on type ‘Post’. — To solve this problem I asked for help by using the “Developers” community channel. The problem was that message_source may be missing from the Post type in mattermost-redux. …

Mattermost

This week I started to work on the ticket that required to migrate all files including the test files under component/post_markdown to typescript.

The first thing to do is to change the extension of the files from js to ts, jsx to tsx.

The difference between Javascript and Typescript is that in Typescript we need to specify the exact type of variables. If the types are not matching it generates errors.

When migrating code from javascript to typescript first we have to specify :

  • types of properties
  • types of parameters in the function declaration

For example:

//This is code…

Mattermost migration

For this release, I am planning to continue working on Mattermost project. This time I picked a bigger module to migrate over to TypeScript.

The link to the issue → Migrate ‘components/post_markdown’ module and associated tests to TypeScript.

Mattermost is a large open-source community that requires a lot of time to configure, navigate and learn the code. This time I have 4 files to migrate and I am ready to take the challenge.


Automated Testing and Continuous Integration

In this lab, we were practising the use of automated testing and continuous integration.

I chose to use Jest as my testing framework because it is suitable for Node. Jest is a JavaScript testing framework that was developed by Facebook. In order to start using Jest in the project, first, you need to install it:

npm install --save-dev jest

Then add the below section to your package.json file:

{
"scripts": {
"test": "jest"
}
}

To run the tests in your project :

npm run test

Writing Unit Tests:

In order to create better unit tests, I refactored…


The second part of Release 0.3 is all about contributing to the Telescope project.

I found a front end issue to work on that was related to accessibility. The link to the original post appeared as button tag in the HTML file. This happens because of the use of material-UI card components. While I was looking for the solution for this issue, there were changes merged and the UI for this page was changed as well. In the new design, the card action component was not used. Each card has a link to the original blog post. Well, it solved…


Migrating code from Javascript to Typescript

This release I continued to work on Mattermost project. I decided to dive in a little more since all the environment was already set up so I could concentrate on the project itself.

Mattermost started to migrate the mattermost-webapp over to TypeScript to facilitate better code quality There are a lot of opened issues relating to code migration. The issue I picked is to migrate the component/claim module to typescript. For this module, I had to change 2 files: claim_controller.jsx and index.js.

As this is my first experience with code migration I had to…


Static Analysis tooling

This week I experienced the use of Static Analysis tools which help maintain the quality of source code.

For this lab, I chose to use:

  1. Prettier — This is an automatic source code formatter. When this tool is integrated with the source code it takes source code as an input and creates properly formatted output. This tool helps to maintain a consistent format of the code in the project. I chose this tool because it supports JavaScript language which I use in my URL Checker Tool.

How to Install:

npm install --save-dev --save-exact prettier

Create config file…


Interacting with Telescope

This week I had the chance to interact with the Telescope project. The installation process and setting up the environment went pretty well. This is due to the experience I had in the previous month installing the Mattermost server.

The task for this week was to pull the posts from Telescope API and check the links inside of these posts by using our URL link checker. I decided to create a function that sends a request to the local server which returns a JSON object with posts’ ids and URLs. Then I extracted all the posts ids…


Mattermost

This week I continued to work on the issue for Mattermost. This issue required to migrate string ref to functional ones. Although this is an easy issue and easy fix, the environment set up is not easy at all. It took me at least 3 full days to set up the server and the web app environment.

First I had to set up Windows Subsystem for Linux on my machine. Then I followed the developer setup for the server. I encountered some issues with Docker during the setup. To solve these issues I used the “Developers” community channel and…

Ekaterina Grinberg

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store