4

Contribute to Ockam · Discussion #1081 · ockam-network/ockam · GitHub

 2 years ago
source link: https://github.com/ockam-network/ockam/discussions/1081
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Contribute to Ockam #1081

Contribute to Ockam #1081
on Mar 19 · 13 comments · 25 replies

We would love to help you make your first contribution to Ockam ... this could be anything from a small fix to a typo in our documentation or a full feature. Tell us what you enjoy working on and we would love to help!

If you would like to contribute, but don't know where to start, checkout the issues that are tagged "help wanted" and our contribution guide.

You can contribute to our documentation or code in Rust, Elixir, C, Docker, Gradle etc.

If you want someone to pair with you on your first contribution. Please leave a short note on this thread and we would love to pair with you to make your first contribution.

If you have any other questions about contributing, please ask them here as well.

Happy coding nerd_face

Replies

13 comments
25 replies

Hello, I am new to Elixir and I am interested in doing some contribution by pairing with someone.

2 replies

@abulsayyad123 welcome to the Ockam community and thank you for offering to contribute!!

Have a look at this issue #1090
I think it would be a great one for us to work on together!

As a first step have a look at the vault code here and here
Once you're familiar, try to build ockam_vault_software. And look at how it is built by digging into its mix.exs

After you've dug in a little bit we can discuss how things could be improved.

Building ockam_vault_software requires Elixir, Rust and C tools ... so if you need a readymade dev environment .. you can do this to start a docker builder

ocker run --rm -it -e LOCAL_USER_ID=$(id -u) --volume $(pwd):/work ghcr.io/ockam-network/ockam/builder:latest bash

Note that this will download a big 2+ GB docker image.

Please don't hesitate to ask any questions.

Thanks, @mrinalwadhwa for the details. Sure, I'll understand the mentioned code and will try to build a docker file.

Hi! I'm a rust developer with some experience in distributed systems and a lot of interest in learning about applied cryptography and embedded devices.

I've seen a couple of issues that I think would be good candidates to start with, but I wanted to ask you first. Any particular recommendation?

2 replies

Hi Adiran, welcome and thank you for contributing pray

I can think of a few potential areas that you could contribute to:

  1. An embedded friendly Ockam Node #1128
  2. A WebSocket Ockam Transport #1130
  3. A Bluetooth Ockam Transport #1131

What do you think? Do any of those sound interesting?

They all look pretty interesting! I guess the best choice to get started with the repo would be the #1130. Thanks @mrinalwadhwa for your time!

Hey, I'm interested in tackling some Elixir issues. Glad to help.

1 reply
edited

mrinalwadhwa on Apr 10

Maintainer

Author

Hey @Maartz what do you think of this issue, should be a simple one to get started #1221

Hi, I’d like to contribute in Elixir issues. Glad to help you

4 replies

Hey @malvfr what do you think of this issue, should be a simple one to kick things off #1222

OK. I’ll try to build the app and start working on this issue

Looks like I caused a little bit of confusion by defining two similar issues #1221 and #1222. Sorry about that.
Seems @Maartz has started work on #1222 ... so @malvfr if you don't mind picking up #1221 instead .. that would be perfect.

Thank you both pray

Hey @mrinalwadhwa, I'd be happy to contribute. I use Elixir every day and know a bit of Rust.

1 reply

Hi @ryanzidago, since you're familiar with Elixir and Rust .. what do you think of this issue to get started? #1223

I am interested and would like to contribute to Elixir code. Preferably pair with someone to get started.

1 reply

Hey @palaniravi, as a first small step, please try building the code according to the below instructions. Let me know if you need help along the way.

edited

mrinalwadhwa on Apr 10

Maintainer

Author

@Maartz @malvfr @ryanzidago @palaniravi

Thank you all for offering to contribute. That's super exciting.

To kick things off, here's a few notes on getting started:

  • Fork the ockam repo and clone your fork - helpful instructions from github.
  • The Elixir implementation lives at implementations/elixir
  • The Rust implementation lives at implementations/rust
  • Some Elixir code depends of on some C code and some on Rust code so the build setup requires a bunch of tools
  • The simplest way to build things is using the ockam/builder docker image which is big download ~2.5GB

This will download the docker image and shell into it.

docker run --rm -it -e HOST_USER_ID=$(id -u) --volume $(pwd):/work ghcr.io/ockam-network/ockam/builder:latest bash
  • Inside the container, you can run the whole build by:
./gradlew build
  • You can run the Rust build by:
./gradlew build_rust
  • You can run the Elixir build by:
./gradlew build_elixir

Using Gradle for the builds ensure that all the dependencies are built correctly.
After you build with Gradle once, you can use mix to build Elixir code and Cargo to build Rust code like any other project.

To get familiar with the Elixir code start with the tests in this folder.
To get familiar with the Rust code start with the examples in this folder.

6 replies

Hi, any directions towards a first Elixir contribution?

Hi @mrinalwadhwa, I was trying to set up the development environment using the above issues but got caught up in a weird permissions issue. I am not able to create any directories in the /work which leads to failure in gradle build step. I am logged in to the container with runner user with user id 9001 whereas the /work directory is owned by my LOCAL_USER_ID: 1000. I believe it might be some issue with my local docker setup but hoping you might have some clue. Thanks! slightly_smiling_face

edited

mrinalwadhwa on May 26

Maintainer

Author

Hey @psinghal20 that's interesting indeed.

Are you running?

docker run --rm -it -e HOST_USER_ID=$(id -u) --volume $(pwd):/work ghcr.io/ockam-network/ockam/builder:latest bash

Since we're mounting pwd to /work I think the directory permissions on the host machine will carry over.
Could you try ls -alh . in the mounted /work or on the host current directory to see if it has write permissions.

Hi @mrinalwadhwa I would love to contribute as well. Have been using elixir for some time now but not familiar with rust. I'll setup the code base over the next couple of days.

2 replies
edited

mrinalwadhwa on Apr 10

Maintainer

Author

Hey @aniruddhasd that's awesome! Thank you for offering to contribute.

Hey @mrinalwadhwa , I was able to setup the code and build the whole project using gradle. The instructions above were helpful. Post that one elixir test failed test Ockam.Router TCP ping pong test. Will look into it next.

Hi. Saw your post on Twitter! Can I work on beginner-level Rust issues? Thanks

2 replies

@akshay1992kalbhor what do you think of this issue, should be a simple one to get started
#1220

Looks doable. I am gonna go ahead and start working on it!

Hello, I am new to contributing to open source, I want to start with baby step using Elixir. I saw your post on LinkedIn and I was directed here.

1 reply

Hey @Andhrah, as a first small step, please try building the code according to the above instructions. Let me know if you need help along the way.

Mrinal, I am able to build the elixir code per you instructions.

Same here, I am getting same failure upon running the test.

regards Ravi

1 reply

@aniruddhasd @palaniravi Thank you both for catching the broken test, I filed #1233 to discuss that issue.

Everyone here, I think, will enjoy this months Ockam Open Source Community call, we're doing a step-by-step live coding introduction to Ockam in Rust. It would be a great way to get started.
#1303

Even though this introduction is in Rust, the core Ockam ideas in Elixir and Rust implementations are the same.

Please bring any other questions you may have to the call as well, we'd love to help with them.

Look forward to seeing you on zoom next week!!

0 replies

Hi guys! I'm back after some crazy months with zero free time.

I'd thought it would be a good idea to check out the current status of the websocket implementation (#1130) and see if I can improve the code + add tests. Do you have any specific recommendations on what I could work on next?

I'll be watching the recordings of the past few community meetings in the meantime popcornpopcornpopcorn

2 replies

@adrianbenavides thank you for the amazing work with the WebSocket transport pray
It would be cool to have some examples (like the ones in the get started guide - example 7, 8 and 9) that show the WebSocket transport playing nicely with TCP transport ... would you want to try that next next?

Absolutely, looks pretty interesting! Thanks for your time @mrinalwadhwa


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK