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

Isolate arrow code #237

Open
3 tasks
JayWhite2357 opened this issue Oct 8, 2024 · 14 comments · May be fixed by #266 or #267
Open
3 tasks

Isolate arrow code #237

JayWhite2357 opened this issue Oct 8, 2024 · 14 comments · May be fixed by #266 or #267
Labels
💎 Bounty good first issue Good for newcomers refactor Code cleanup or reorganization

Comments

@JayWhite2357
Copy link
Contributor

JayWhite2357 commented Oct 8, 2024

Background and Motivation

Currently, arrow is one of the elements that must be disabled to enable no_std support. Additionally, not every use-case requires arrow. So, we have gated it behind a features flag (feature = "arrow"). However, there are many instances of #[cfg(feature = "arrow")] throughout the codebase, which leave the code cluttered.

Changes Required

  • Move all arrow code to a single (or a small number) of modules.
    • My suggestion would be creating a new proof_of_sql::base::arrow module and moving all code there. However, this may not be possible, so this is not a hard requirement.
    • The resulting code must not introduce cyclic dependencies and should resolve any existing ones with arrow related code. This is one of the primary reasons for this cleanup: in order to more easily identify and resolve these.
  • Update any legacy documentation referencing arrow to ensure that it is up to date.
  • Bump the arrow crate to version 53.
@JayWhite2357
Copy link
Contributor Author

@stuarttimwhite @tlovell-sxt Is 53 the correct version for arrow?

@JayWhite2357 JayWhite2357 added enhancement New feature or request refactor Code cleanup or reorganization good first issue Good for newcomers and removed enhancement New feature or request labels Oct 8, 2024
@JayWhite2357
Copy link
Contributor Author

/bounty $100

Copy link

algora-pbc bot commented Oct 9, 2024

💎 $100 bounty • Space and Time

Steps to solve:

  1. Start working: (Optional) Comment /attempt #237 with your implementation plan. Note: we will only assign an issue if you include an implementation plan with a time estimate. Additionally, to be assigned an issue, you must have previously contributed to the project. You can still work on an issue and submit a PR without being assigned.
  2. Submit work: Create a pull request including /claim #237 in the PR body to claim the bounty
  3. Receive payment: 100% of the bounty is received 2-5 days post-reward. Make sure you are eligible for payouts

Thank you for contributing to spaceandtimelabs/sxt-proof-of-sql!

Add a bountyShare on socials

Attempt Started (GMT+0) Solution
🟢 @melsonic Oct 12, 2024, 1:13:39 PM #267
🟢 @varshith257 Oct 12, 2024, 1:52:33 PM #266

@stuarttimwhite
Copy link
Contributor

@stuarttimwhite @tlovell-sxt Is 53 the correct version for arrow?

Yes.

@melsonic
Copy link

melsonic commented Oct 12, 2024

/attempt #237

Algora profile Completed bounties Tech Active attempts Options
@melsonic 5 bounties from 4 projects
TypeScript, JavaScript,
Rust & more
Cancel attempt

@melsonic
Copy link

@JayWhite2357 Hey, I have gone through the codebase and have some doubts.

I see some functions inside struct implementation have functions using the arrow feature. If we try to isolate only those functions under the custom arrow module, it will create cyclic dependencies. So, is moving the whole implementation to the custom arrow module ok?

@varshith257
Copy link
Contributor

varshith257 commented Oct 12, 2024

@melsonic I forgot to mark my attempt, I have already worked on it(left with a few fixes) and successfully isolated it to the custom arrow module. Commented for we don't make duplicate efforts for it :)

@JayWhite2357 I will submit multiple PRs to make the review process smooth. With this /attempt #237

Algora profile Completed bounties Tech Active attempts Options
@varshith257 15 bounties from 7 projects
Go, Scala,
TypeScript & more
﹟232
Cancel attempt

@varshith257 varshith257 linked a pull request Oct 12, 2024 that will close this issue
2 tasks
melsonic added a commit to melsonic/sxt-proof-of-sql that referenced this issue Oct 12, 2024
@melsonic melsonic linked a pull request Oct 12, 2024 that will close this issue
2 tasks
Copy link

algora-pbc bot commented Oct 12, 2024

💡 @melsonic submitted a pull request that claims the bounty. You can visit your bounty board to reward.

@melsonic
Copy link

Hey @varshith257, I've also spent some time going through the codebase, and So, I have submitted a PR with my changes. The code is working fine, I have tested it, and only the documentation part is left, which I will do in the next commit. Since you have also worked on the issue, I am open to collaborating before the final changes if you are ok with it, else let Jay decide.

@varshith257
Copy link
Contributor

@melsonic Cool! Let's collaborate. Yes, we have both spent time on it. I think we have two different solutions, so let's see what @JayWhite2357 agree with and let's collaborate on it

Copy link

algora-pbc bot commented Oct 12, 2024

💡 @varshith257 submitted a pull request that claims the bounty. You can visit your bounty board to reward.

@melsonic
Copy link

melsonic commented Oct 13, 2024

@melsonic Cool! Let's collaborate. Yes, we have both spent time on it. I think we have two different solutions, so let's see what @JayWhite2357 agree with and let's collaborate on it

Sure bro! Let's colab.
And talking about the solution, it is not that different, the difference is in the structure. I also started with the module arrow inside base, but after seeing some modules under sql/proof, I moved it outside base.

And yeah, let's wait for @JayWhite2357 and then proceed with our changes.

@JayWhite2357
Copy link
Contributor Author

Hey @melsonic and @varshith257. Sorry for the delay on this. I think #266 is more in-line with what I was hoping for:

My suggestion would be creating a new proof_of_sql::base::arrow module and moving all code there. However, this may not be possible, so this is not a hard requirement.

I think it's ok to keep some of the arrow code inside sql/proof since most of it can either be eventually removed, or is test only.

@melsonic
Copy link

Hey @melsonic and @varshith257. Sorry for the delay on this. I think #266 is more in-line with what I was hoping for:

My suggestion would be creating a new proof_of_sql::base::arrow module and moving all code there. However, this may not be possible, so this is not a hard requirement.

I think it's ok to keep some of the arrow code inside sql/proof since most of it can either be eventually removed, or is test only.

Okay, no problem @JayWhite2357

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💎 Bounty good first issue Good for newcomers refactor Code cleanup or reorganization
Projects
None yet
4 participants