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

Ability to have private event schemas #184

Closed
christopappas opened this issue Feb 16, 2023 · 12 comments · Fixed by #258
Closed

Ability to have private event schemas #184

christopappas opened this issue Feb 16, 2023 · 12 comments · Fixed by #258

Comments

@christopappas
Copy link

Hello!

I have a non-open source project within the edX ecosystem that I would like to use kafka/the event bus with; however, I would ideally not need to have to define events in an open source repo for a private project (not that it's secret per se, but just that it would be mysterious).

Curious what kinds of thoughts you have on the matter!

Thanks,
Chris

@mariajgrimaldi
Copy link
Member

mariajgrimaldi commented Mar 9, 2023

Hi there!

As I see it, this is a license-related issue. So, we must refer to what our license GPL v3 says about using the Open edX Events API in a closed-source project.

When we implemented openedx-events (and also filters) as part of the Hooks Extension Framework project, we were aiming to have the necessary tooling to extend the Open edX project in a more maintainable way, so we didn't pay much attention to the libraries licensing, so we end up using the same as edx-platform.

I believe this discussion about using open-source libraries in private repos was held before by @felipemontoya, so maybe he could give us more insight on the subject.

@bmtcril
Copy link
Contributor

bmtcril commented Mar 9, 2023

Hi @mariajgrimaldi ! I'm not sure how licensing enters into this, and am no legal expert either, but I would have expected that you could implement an OpenEdxPublicSignal in any plugin, and as long as it was correctly written it should work in the event bus. Is there some registry or schema management step I'm missing here?

If licensing does become an issue tCRIL can take a look at re-licensing this as well. I believe we've done that before.

@mariajgrimaldi
Copy link
Member

mariajgrimaldi commented Mar 9, 2023

@bmtcril: technically-wise, events can be implemented in any plugin, as you say. What I'm not sure it's how the current library license would work with the private aspect of things 🤔. Maybe I'm reading too much into it.

@felipemontoya
Copy link
Member

I once received this inquiry by someone before and it makes sense to me that someone could have a private project that implements an event. However I don't think this is a maintainer's decision, but it must come from tCRIL as the actual owner of the code.

As @mariajgrimaldi said, when we started with the hooks framework project the goal was to create stable extension points. All the code that we thought we wanted to extend was already being shared as part of the edx-platform code and thus was already licensed with AGLPv3.

Now, implementing an OpenEdxPublicSignal in a plugin requires that we include the openedx-events library as a dependency to be able to import from the base class . From what I can understand that makes it derivative work and thus also subject to AGLPv3. Making a class that replaces the signal or that somehow parses the message at the other side of kafka is probably possible but if this was the intention, why not re-license this and make it official.

On the topic of this happening before I know that the xblock library was re-licensed as apache 2.0 in 2014.

I could not find links to the rationale behind this. Only to the actual license change.

@robrap
Copy link
Contributor

robrap commented Jul 12, 2023

@felipemontoya @mariajgrimaldi: 2U initiated the event bus and certainly will use events within private repos as well. If there is no reason not to, can we simply kick off the process to re-license to avoid any legal questions? As maintainers, do you mind creating the Axim request to do so? Thank you!

@jmbowman
Copy link

From my re-reading of the AGPL, I don't think there's a problem with using AGPL code alongside proprietary code in the same service, as long as the AGPL package itself isn't modified (as long as you don't then go and try to redistribute that combination outside the organization). However, IANAL (I Am Not A Lawyer).

@bmtcril
Copy link
Contributor

bmtcril commented Jul 14, 2023

I will bring this up to Axim higher ups and respond back once I learn more!

@felipemontoya
Copy link
Member

Should I still open the Axim engineering issue? Or is it enough to wait in here for the response from axim?

@robrap
Copy link
Contributor

robrap commented Jul 14, 2023

It feels like it couldn't hurt to create the Axim ticket to ensure it is on their board, and just add details from this ticket, including the fact that @bmtcril might be looking into this. I just want to make sure it isn't dropped. Thanks all. (I'll be away until mid-week next week.)

@bmtcril
Copy link
Contributor

bmtcril commented Jul 17, 2023

Sure if I see the ticket come in I'll grab it. We're just waiting for some folks to return from vacation.

bmtcril added a commit that referenced this issue Aug 15, 2023
Per issue #184 and
openedx/axim-engineering#826 and
with input from Axim and 2U legal we are re-licensing this code
and package to more explicitly allow private plug-in functionality
on top of it.
@bmtcril
Copy link
Contributor

bmtcril commented Aug 15, 2023

Hi everyone, sorry for the delays. Due to summer holidays and getting Axim and 2U legal input it took a while to get to an answer. We are approved to go ahead and update the license to Apache 2. See: #258

@robrap
Copy link
Contributor

robrap commented Aug 15, 2023

Great. Thank you @bmtcril.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants