How can one contribute to open source projects developed by DFINITY?

I really like DFINITY’s mission and what it is trying to achieve. For this reason, I was wondering if you have any suggestion related to how I can contribute to one of its projects.

In particular, is there any project that could require additional support? Or do you maybe use tags to mark the issues that are more suitable for initial contributors?

3 Likes

I think the two places that are easiest to contribute to are dfx and the documentation. We don’t have tags for what is easiest to get started with, but if you have anything specific you’d like to do I am happy to make a list of ideas that would fit

1 Like

Yes, it was dfinity’s one of the example projects I guess, along with DSCVR and more. But later on it was handed over to Openchat team.

If you want to contribute to open source through paid bounties

2 Likes

Thanks for the quick reply! I will surely check both links.

From the languages/tools I could see from DFINITY repositories, I can offer support especially in Bash and Python for any kind of automation. So if you have something, happy to help.

2 Likes

AFAIK we don’t have Python anywhere in our repos. But we have a bunch of Bash scripts, and @mnl is currently working on a few hard problems to make dfx releases more automated. I’ll ask him to ping you in case you’re interested in that

1 Like

I see. Yes, sure, I’d be happy to help in such a task.

Hi @mmicu, thanks for reaching out! Hopefully, you’d be able to pick something interesting for you from these two below:

1. Build a GitHub Action that installs dfx in GitHub Action Workflow.

There has been some interest in this inside DFINITY; I know I wanted to have this at least three times, and probably plenty of projects building on IC and using GitHub and dfx would find it useful.
I think what it takes is to add an action.yml file to the root of the dfinity/sdk repository; see an example from another project: checkout/action.yml at main · actions/checkout · GitHub. These two doc pages show how to do it: About custom actions - GitHub Docs, Metadata syntax for GitHub Actions - GitHub Docs. Having such a file will allow other users of GitHub Actions to use something like that in their GitHub Workflows:

.github/workflows/test-my-dfx-project.yml @ github.com/some-org/some-repo
- uses: dfinity/sdk
  with:
    # values: string with semver, or dfinity/sdk commit rev, or 'latest'
    # default: 'latest'
    dfx-version: '0.15.0'

...

2. Develop Playwright tests for frontend canister

We’re currently missing e2e browser tests for the frontend canister. Because of this, we have to go through a manual procedure when releasing a new version of dfx. Automating this step is necessary for further automation of dfx releases. Ideally, this could be integrated into our current e2e.yml workflow (see: Continuous Integration | Playwright Python).

2 Likes

Hi @mnl! Thanks for taking time to write this two proposals.

Both look very interesting to me and they also adapt to my skills.

I will start this week and give you updates as soon as I have them.

1 Like

It is

env:
  dfx_version: 0.14.1

jobs:
  build:
    runs-on: ubuntu-22.04

    steps:
      - name: Get dfx
        run: |
          DFX_VERSION=${{ env.dfx_version }} sh -ci "$(curl -fsSL https://internetcomputer.org/install.sh)"

Then for example:

     - name: Start local dfx
        working-directory: ./test
        run: |
          dfx start --host 127.0.0.1:4943 --background

[...]

      - name: Stop local dfx
        working-directory: ./test
        run: |
          dfx stop

and - uses: actions/checkout is git clone https://github.com/your/repo.git && cd repo for 95% of use cases, yet everyone is using it

- uses: dfinity/sdk could also be expanded in the future with additional features like

  with:
    install_nns: true 
    start: 'replica' # or 'ic-ref'
    deploy: '.' # to deploy the project inside the repo, 
                # or 'some-org/some-repo' to deploy project from other github repo

While obviously, it all can be achieved by running dfx commands manually, it is a matter of convenience

np :slight_smile: drop me a DM whenever you like, happy to collaborate or help in case you’ll have any questions/get stuck

1 Like