Ik heb een programma die werkt met plugins. Beide heb ik zelf gemaakt.
Het pluginsysteem is een groot onderdeel van het programma en hier gaat veel werk inzitten om steeds maar nieuwe plugins te maken en dergelijke, dus heb ik besloten om de plugins te open sourcen.
Hiervoor moest ik mijn repository in tweeën breken: Het programma zelf (niet open source) en de plugins (open source)
De plugins leunen op een 2-tal assemblies. Eentje met enkel de interfaces voor het pluginsysteem en een library met dingen die niet open source is. Het programma maakt gebruik (maar is niet afhankelijk) van de plugins.
Nu heb ik een SDK gemaakt en de plugins op github gezet met instructies in de SDK om het programma in een bepaalde folder (een subfolder 1 laag lager dan de plugins) te kopieeren. Op die manier kan ik de referentie garanderen naar de 2 assemblies.
Zelf blijf ik ook plugins ontwikkelen en doe dit het liefste vanuit 1 solution met zowel het programma danwel de plugins. Hiervoor heb ik de plugins als een submodule toegevoegd, maar hier loopt het spaak. De plugins referencen naar de 2 assemblies die er in deze opzet natuurlijk niet zijn. Eigenlijk wil ik hier gewoon een project reference hebben vanuit de plugin naar de 2 projecten.
Ik kan maar 2 manieren bedenken hoe ik verder kan ontwikkelen:
Maar dan ook nog wanneer ik daadwerkelijk wil gaan ontwikkelen moet ik dat eigenlijk doen op mijn 'eigen' branch (anders werkt mijn solution niet) dan wanneer klaar de nieuwe commits op mijn branch cherry picken naar de public branch en een reset uitvoeren op mijn eigen branch en dan public pushen en mergen naar mijn eigen branch.
Lijkt me wat omslachtig. Ik ben benieuwd of er betere methodes zijn. Vast wel
Het pluginsysteem is een groot onderdeel van het programma en hier gaat veel werk inzitten om steeds maar nieuwe plugins te maken en dergelijke, dus heb ik besloten om de plugins te open sourcen.
Hiervoor moest ik mijn repository in tweeën breken: Het programma zelf (niet open source) en de plugins (open source)
De plugins leunen op een 2-tal assemblies. Eentje met enkel de interfaces voor het pluginsysteem en een library met dingen die niet open source is. Het programma maakt gebruik (maar is niet afhankelijk) van de plugins.
Nu heb ik een SDK gemaakt en de plugins op github gezet met instructies in de SDK om het programma in een bepaalde folder (een subfolder 1 laag lager dan de plugins) te kopieeren. Op die manier kan ik de referentie garanderen naar de 2 assemblies.
Zelf blijf ik ook plugins ontwikkelen en doe dit het liefste vanuit 1 solution met zowel het programma danwel de plugins. Hiervoor heb ik de plugins als een submodule toegevoegd, maar hier loopt het spaak. De plugins referencen naar de 2 assemblies die er in deze opzet natuurlijk niet zijn. Eigenlijk wil ik hier gewoon een project reference hebben vanuit de plugin naar de 2 projecten.
Ik kan maar 2 manieren bedenken hoe ik verder kan ontwikkelen:
- Gewoon met 2 solutions werken en mij aan de 'regeltjes' van folderstructuur houden
- Een eigen branch maken in de submodule waar ik de reference wijzig naar mijn projecten en dan wanneer nodig de submodule pull en dan merge naar mijn eigen branch
Maar dan ook nog wanneer ik daadwerkelijk wil gaan ontwikkelen moet ik dat eigenlijk doen op mijn 'eigen' branch (anders werkt mijn solution niet) dan wanneer klaar de nieuwe commits op mijn branch cherry picken naar de public branch en een reset uitvoeren op mijn eigen branch en dan public pushen en mergen naar mijn eigen branch.
Lijkt me wat omslachtig. Ik ben benieuwd of er betere methodes zijn. Vast wel