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

Enabling extension of pins to other platforms #737

Open
amashadihossein opened this issue May 1, 2023 · 5 comments · May be fixed by #751
Open

Enabling extension of pins to other platforms #737

amashadihossein opened this issue May 1, 2023 · 5 comments · May be fixed by #751

Comments

@amashadihossein
Copy link

          Yes, definitely, I just want to make sure the extension interface is solid before encouraging others to use it.

Originally posted by @hadley in #349 (comment)

Would it be possible to resurrect pins-user's ability to develop extensions for data repositories beyond some of the ones that are covered (e.g. S3, GCS, Azure etc.)?

Context: pre 1.0 version, pins used to provide support for users to write extensions for pinning to not-broadly-supported boards. In conversation with @hadley ~ 2 years ago, my understanding was that, the ability to extend pins to other data repos (boards) will be restored. For big organizations with variety of less common data platforms, the uniformity that pins could bring (no matter which back-end data platform) is of great value.

@juliasilge
Copy link
Member

Related to #481, which does give you a bit of an outline of what to do but we know is not a full answer or solution.

Can you give me a little more context of the kinds of storage platforms you are thinking of? Maybe a couple specific examples of these less common data platforms?

@amashadihossein
Copy link
Author

labkey is one such platform. Using labkey API, one can store files, very much like writing a CSV to S3. Forking the older version of pins, I added labkey as a board which enabled pinning to labkey. I'd love to be able to do something similar with the latest version pins.
Hope this context helps and thanks for looking into this!

@juliasilge
Copy link
Member

It looks like you didn't need to write new S3 methods (if I remember right, they were things like board_pin_create, board_pin_get, and similar) but instead made a special/specific version of the datatxt board? I unfortunately am not too familiar with the datatxt features of the older version of pins, as I never worked with that.

We do have examples of using existing boards in this way still, like using board_s3() with MinIo storage or the thin wrapper that is board_connect_url(). Do any of the existing boards look like they would work for labkey?

If not, I think then you are in the situation of creating all the needed S3 methods for your new board, as outlined in #481. The good news is that each one is pretty small, but the bad news may be that there are a fair handful that need to be made. If that's the situation you are in, would you be interested in taking a stab at the process? If you are interested in contributing that needed documentation about how to go about this (a new vignette), we would welcome it! If not, I will keep an eye out for other users who are in a similar situation to prioritize the new vignette.

@amashadihossein
Copy link
Author

That's right, datatext class was used making customization very convenient. I'll take a closer look and see if one of the existing boards is generic enough (as data text was) that could accommodate. If not, following #481 sounds reasonable and thanks for being open to PR and new vignette!

@juliasilge
Copy link
Member

Let us know if you have questions as you work through making a new board type! It would be great to collect feedback on that process for documentation purposes.

@juliasilge juliasilge linked a pull request Jun 14, 2023 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants