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

Improve error and update handling for Algorand sandbox #39

Open
michielmulders opened this issue Jun 11, 2021 · 19 comments
Open

Improve error and update handling for Algorand sandbox #39

michielmulders opened this issue Jun 11, 2021 · 19 comments
Labels
Advanced Experience Level: Advanced Development Tasks that involve development works

Comments

@michielmulders
Copy link
Contributor

michielmulders commented Jun 11, 2021

Overview

  • Short Description: Improving handling of updates and errors in Algorand Sandbox
  • Bounty: 750 ALGO tokens (US residents will receive USDCa and have to opt-in to receive the asset in their wallet)
  • Estimated Time Commitment: 1-2 days
  • Category: Development (AlgoDev)
  • Experience Level: Intermediate / Advanced

Description

What is this task?

Sandbox is an easy way to create and configure an Algorand development environment with Algod and Indexer. This task contains several deliverables to improve the sandbox.

What are the requirements for the bounty taker?

The bounty taker must be knowledgeable in git, Docker, and bash scripts.
They also need to be familiar with the Algorand software (algod, indexer, and sandbox).
Ideally, the bounty taker should have access to a Windows, a macOS, and an Ubuntu 20.04 environment to be able to test sandbox in these three environments.

What are the deliverables?

Each deliverable consists of a pull request to github.com/algorand/sandbox.
In case multiple deliverables depend on each other, multiple deliverables may correspond to the same pull request.
But we recommend separating pull requests as much as possible.

Judging Criteria and Metrics

  • Clean, tested, well-documented code
  • Explanation of the rationals behind choices made by the bounty taker when implementing the requested features
  • Update of the README and other user-facing documentation
  • Pull request accepted and merged by the maintainers

1. Update algod/indexer during ./sandbox up

Description
Make a Pull Request to solve the issue algorand/sandbox#41.
The goal is to allow a sandbox user to easily update their sandbox node/indexer without losing all the data in the containers.

The bounty taker should ensure that the update mechanism fails gracefully in case of issues with network connectivity (or ideally also when the user cancels the update with Ctrl+C, but this may not possible to check).
In those cases, the sandbox should start with the previous version.

2. Force rebuild after cleaning

Description
Make a Pull Request to ensure that after ./sandbox clean, ./sandbox up rebuilds without cache the algod and indexer images, so that algod and indexer actually get updated.
One potential (untested) solution is that ./sandbox clean creates a file .clean, so that when ./sandbox up sees this file, it adds the option --no-cache to docker-compose.

Currently cleaning the sandbox via ./sandbox clean does not force the algod and indexer images to be rebuilt from scratch.
In particular, it does not update the version of algod and indexer.

Note that this deliverable complements the first deliverable. The first deliverable facilitates the update of a running sandbox environment (i.e., sandbox containers) but does not update the actual images. This means that after cleaning the sandbox and starting it again, algod and indexer need to be updated again.

The above explanation of the difference between the two update mechanisms needs to appear in the README.

3. Improve error handling

Description
Make a Pull Request to improve error handling in the sandbox and make it easier for a sandbox user to debug issues.
This deliverable is open-ended and the Algorand Foundation may offer higher bounties for outstanding error management.

It should at least solve the issue algorand/sandbox#23.
Power users should have the option to see the full logs (in case default error handling hides part of the full log).

Other Requirements

  • All project codes should be published on GitHub, with MIT license or Apache V2 license.
  • All contributions/PRs to public (Algorand) repositories should be open source and should follow the contributions rules of the relevant repository.
  • All non-codes documents should be using Markdown format.
  • In the project description or repository readme, there should be a proper security notice. E.g., it should tell the visitor the project is not audited and should not be used in a production environment.
@michielmulders michielmulders added Development Tasks that involve development works Advanced Experience Level: Advanced labels Jun 11, 2021
@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 750.0 ALGO (772.5 USD @ $1.03/ALGO) attached to it as part of the algorandfoundation fund.

@michielmulders
Copy link
Contributor Author

@overhead525 can you reapply for this bounty as we had to make some changes to the denomination. The bounty has been reserved for you. Thanks and sorry for the inconvenience!

@gitcoinbot
Copy link

gitcoinbot commented Jun 11, 2021

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 265 years, 5 months from now.
Please review their action plans below:

1) overhead525 has been approved to start work.

Hi Michiel,

I've spent yesterday evening checking out this issue on gitcoin. It definitely falls within my skillset, so I'd like to work on it. I made a proposal with some information about me, my setup, and my approach that you should find useful.

https://overhead525.github.io/algorand-error-handling/

You should see that I'm capable of getting the sandbox to update in a convenient manner for your users, as well as getting the error handling on par with version 1.0.

The link is a working draft that I'll update as I progress through the bounty.

Best regards,
Ritchel Cousar Jr.
2) binsta has applied to start work (Funders only: approve worker | reject worker).

I would like to contribute. I have fork and working on https://github.com/binsta/sandbox

Learn more on the Gitcoin Issue Details page.

@overhead525
Copy link

@michielmulders I commented on the last issue before I saw this. I was a bit confused but we're good now 👍.

@gitcoinbot
Copy link

@overhead525 Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • reminder (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

1 similar comment
@gitcoinbot
Copy link

@overhead525 Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • reminder (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@overhead525
Copy link

@gitcoinbot Yes, I'm still working on it

@overhead525
Copy link

overhead525 commented Jun 20, 2021

See the following PR's for Part 1
algorand/sandbox#50
algorand/sandbox#52
algorand/sandbox#53

@gitcoinbot
Copy link

@overhead525 Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • reminder (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

1 similar comment
@gitcoinbot
Copy link

@overhead525 Hello from Gitcoin Core - are you still working on this issue? Please submit a WIP PR or comment back within the next 3 days or you will be removed from this ticket and it will be returned to an ‘Open’ status. Please let us know if you have questions!

  • reminder (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@michielmulders
Copy link
Contributor Author

@overhead525 Thank you for submitting this work, I see you are working together with the Algorand team, great! Ping me once you've completed the second part and don't forget to submit work via Gitcoin as well. You can just submit a single PR (for part 2 e.g.) as you can only submit one link via Gitcoin. Keep me posted :)

@michielmulders
Copy link
Contributor Author

for reference: Link to the Gitcoin issue: https://gitcoin.co/issue/algorandfoundation/grow-algorand/39/100025862

@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


@overhead525 due to inactivity, we have escalated this issue to Gitcoin's moderation team. Let us know if you believe this has been done in error!

  • reminder (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

1 similar comment
@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


@overhead525 due to inactivity, we have escalated this issue to Gitcoin's moderation team. Let us know if you believe this has been done in error!

  • reminder (3 days)
  • escalation to mods (6 days)

Funders only: Snooze warnings for 1 day | 3 days | 5 days | 10 days | 100 days

@overhead525
Copy link

Don't worry about the bot. I'm submitting the second part today.

@overhead525
Copy link

overhead525 commented Jun 27, 2021

@michielmulders See PR algorand/sandbox#56 for Part 2 submission.

Also, I was thinking that it's likely this issue will take a while to get merged correctly. I'm actually enjoying working with the Algorand team. Will is an excellent code reviewer. I just think it'd be better if I just go ahead and submit my work on Gitcoin. Then you can pay me whatever you think my work was worth based on your judgement. After that, I can continue to make contributions when I get the time without holding up the process, you know?

@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 750.0 ALGO (611.31 USD @ $0.82/ALGO) has been submitted by:


@michielmulders
Copy link
Contributor Author

@overhead525 both PRs have been merged - can you share your Discord username so I can contact you? Thanks!

@overhead525
Copy link

overhead525 commented Jul 2, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Advanced Experience Level: Advanced Development Tasks that involve development works
Projects
None yet
Development

No branches or pull requests

3 participants