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

CLEWs UN Code Integration #98

Open
tniet opened this issue Jan 4, 2024 · 2 comments
Open

CLEWs UN Code Integration #98

tniet opened this issue Jan 4, 2024 · 2 comments
Assignees
Labels
question Further information is requested

Comments

@tniet
Copy link
Contributor

tniet commented Jan 4, 2024

I've been asked to take a look at how/where we integrate the UN CLEWs code into the GitHub Repo for OSeMOSYS. There's some features they are using that would be good to make available to the community, and vice versa, there's some changes that the UN wants to pull in.

I see a couple of possible paths for integrating these changes:

  1. Adding the changes into the main OSeMOSYS branch. This has the benefit of maintaining one code version rather than multiple, but changes might not be valuable to all OSeMOSYS users.
  2. Adding the changes to a separate branch of OSeMOSYS (similar to the alternate storage code branch that is available right now). This is OK but also requires the branch to be updated with changes if the main code changes.
  3. Creating a separate repo and maintaining separate code bases. This isn't ideal as it means the code bifurcates and makes it more challenging to reintegrate later.

Thoughts/suggestions on which option is best and/or other suggested approaches?

@tniet tniet added the question Further information is requested label Jan 4, 2024
@FraGard
Copy link
Contributor

FraGard commented Jan 5, 2024

Hi @tniet, I agree that there may be features used for CLEWs that are potentially heavy and unneded for other uses of OSeMOSYS. Having too many parameters may also create confusion for new users? I would go with option 2, even though it will require updating the branch. We should decide however whose responsibility it is to update the branch, I think. Or should we leave it to the community?

@HauHe
Copy link
Contributor

HauHe commented Jan 8, 2024

Hi @tniet,
thanks for initiating this discussion and highlighting the existing options.
From what you write I assume that we are talking about multiple additions/modifications to the OSeMOSYS code, am I right?
I think the best way is option 1. As you say and I agree, it is a lot easier to maintain the code having one main branch. Furthermore, I think it is more confusing for users to have different versions of code than having a few more parameters. I assume that many new parameters can be defined with a default that doesn't require the user to do anything about them unless the parameter is used, like for example the DiscountRateIdv.
But of course there might be features that require a separate branch, but I would suggest to try keeping this the exception. It could quickly get, or actually is already, messy with keeping track of which version incorporates which feature.
Finally, I think it needs to be decided on a case by case base for each feature.

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

No branches or pull requests

6 participants