Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to TypeScript #551

Open
mubaidr opened this issue May 17, 2020 · 14 comments
Open

Migrate to TypeScript #551

mubaidr opened this issue May 17, 2020 · 14 comments

Comments

@mubaidr
Copy link
Contributor

@mubaidr mubaidr commented May 17, 2020

We plan to gradually migrate brain.js to TypeScript, code base is pretty large, so we would love your help! 💪

How to contribute?

  • Convert a file from .js to .ts
  • Add types, fix all type errors.
  • Submit a PR! 🎉

Here you can find a guide on how to contribute.

Want to convert something, let us know in the comment and go ahead! 😎

To avoid duplicate work please comment on which part you want to work on (as long as nobody else is working on it) so we can mark it as taken.

Reach out to us!
Feel free to reach if you have questions or need help getting started. You can leave comments here or you can tag me in your PR if you need any help or you're not sure about something!

You can also get in touch on our Gitter & Slack.

Happy Coding! 🤟

@mubaidr mubaidr pinned this issue May 17, 2020
@mubaidr mubaidr mentioned this issue Jun 15, 2020
0 of 10 tasks complete
@yashshah1
Copy link

@yashshah1 yashshah1 commented Jul 25, 2020

I'd like to start working on this, I have some experience with Ts, can you tell me which module is up for grabs?

@mubaidr
Copy link
Contributor Author

@mubaidr mubaidr commented Jul 25, 2020

@yashshah1 You are welcome to contribute, please pick any module or portion for conversion and mention it here, so I can mark it in-progress (to avoid any duplication effort).

@nabeelvalley
Copy link

@nabeelvalley nabeelvalley commented Aug 5, 2020

I'd like to work on this too, any recommendations on where to start?

@mubaidr
Copy link
Contributor Author

@mubaidr mubaidr commented Aug 5, 2020

@nabeelvalley here is the short guide, super simple to start. Please pick any module or portion for conversion and mention it here, so I can mark it in-progress (to avoid any duplication effort).

Here you can find a guide on how to contribute.

@nabeelvalley
Copy link

@nabeelvalley nabeelvalley commented Aug 6, 2020

@mubaidr I'm working from the utilities up, to avoid having untyped dependencies

The tests seem to be failing when I convert the file to JS because it looks like Jest is running against the TS files instead of the compiled JS - has the TS Compile been configured?

Looks like the tests are also currently failing:

Test Suites: 1 failed, 5 passed, 6 of 64 total
Tests:       9 failed, 114 passed, 123 total
Snapshots:   0 total
Time:        206.723 s

It appears that the soft-max tests are receiving a Float32Array instead of a plain array - should I look where the Float32 is coming from or should I update the unit tests to expect a Floar32Array instead?

The data returned looks exactly the same, it's just that the object types are different so the deep equality is failing:

Example for one of the tests below:

  ● SoftMax › .compare2D › can run on a simple matrix

    assert.deepEqual(received, expected)

    Expected value to deeply equal to:
      [[-0, 2], [3, 4]]
    Received:
      [[-0, 2], [3, 4]]

    Difference:

    - Expected
    + Received

      Array [
    -   Array [
    +   Float32Array [
          -0,
          2,
        ],
    -   Array [
    +   Float32Array [
          3,
          4,
        ],
      ]
@mubaidr
Copy link
Contributor Author

@mubaidr mubaidr commented Aug 9, 2020

Yes, you can update test to expect Float32Array.

In the mean-time some tests might still fail, because they have not yet been updated recently. You can can continue working and make sure build process is successful and conversion does not cause increase in no. of failed tests.

@HarshKhandeparkar
Copy link
Contributor

@HarshKhandeparkar HarshKhandeparkar commented Aug 28, 2020

Hi! I want to help. If I convert one file, do I need to convert related files too or something? Or just a single file?

@mubaidr
Copy link
Contributor Author

@mubaidr mubaidr commented Aug 28, 2020

You don't need to updated all the related files, just go file by file and make sure build is successful.

@HarshKhandeparkar
Copy link
Contributor

@HarshKhandeparkar HarshKhandeparkar commented Aug 28, 2020

Utilities is taken, isnt it?

@HarshKhandeparkar
Copy link
Contributor

@HarshKhandeparkar HarshKhandeparkar commented Aug 28, 2020

Activation functions seem like a good place to start, may I work on it?

@nabeelvalley
Copy link

@nabeelvalley nabeelvalley commented Aug 28, 2020

Utilities is taken, isnt it?

Hi @HarshKhandeparkar, I haven't had a chance to work on this you're welcome to take utilities if you want, just note that needs to be updated above

@HarshKhandeparkar
Copy link
Contributor

@HarshKhandeparkar HarshKhandeparkar commented Aug 28, 2020

Np @nabeelvalley. I think I'll work on activation functions :)

@HarshKhandeparkar HarshKhandeparkar mentioned this issue Aug 28, 2020
3 of 12 tasks complete
@HarshKhandeparkar
Copy link
Contributor

@HarshKhandeparkar HarshKhandeparkar commented Aug 29, 2020

@nabeelvalley I think I managed to fix the jest error you were facing in #582. You may copy paste my changes to jest.config.json or wait for the PR to be merged :)

@HarshKhandeparkar
Copy link
Contributor

@HarshKhandeparkar HarshKhandeparkar commented Aug 29, 2020

estimator/ has a single file. Looks like a nice 🎯.

@HarshKhandeparkar HarshKhandeparkar mentioned this issue Aug 29, 2020
3 of 12 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
4 participants
You can’t perform that action at this time.