Ah ok, I somehow assumed a artifactory/nexus repository.
But of course a local install should also be supported.
(-> it is really easy to install, and then your whole team can use the same artifacts.)
Ah ok, I somehow assumed a artifactory/nexus repository.
But of course a local install should also be supported.
(-> it is really easy to install, and then your whole team can use the same artifacts.)
…just that the gradle build isn’t stable.
I did some experimentation to publish artifacts to sonatype repositories (and local repository):
For master, I modified the build :
On the command line I disable SDK and force version to be -SNAPSHOT to publish on snapshot repository (else it’s release)
gradle -PbuildSdkProject=false -PjmeVersionTag=SNAPSHOT uploadArchives -Psigning.password=...
the commit : build: deploy to sonatype's nexus · davidB/jmonkeyengine@7edabc0 · GitHub
For release, I customise my project jme3_lib2repo to use gradle-nexus-plugin.
If jme’s developer are OK.
using lib, and repo, will be a big simplification for lib and final app that used jme, (eg: my projects ;-), jME3-JFX )
For the last few years, I have been responsible for publishing SNAPSHOTs to the com.jme3 group on oss.sonatype.org.
I am very pleased to see that there is a new stream of snapshots being pubished to group net.alchim31.com.jme3,
using these gradle based scripts.
However, I would have some concerns to work through before we replaced the current SNAPSHOT publishing process for group com.jme3, as David just proposed.
I think what would be most valuable to the jme3-maven community right now is to focus on getting a RELEASED delivery of JME 3.0 engine published as a permanent, public release in oss.sonatype.org (and thus in Maven Central).
@david.bernard.31, is that full-release of 3.0 something you would like to be involved in and do you think your gradle scripts are a good path towards a maintainable full-release process? Once that full release of 3.0 engine is permanently committed to Sonatype+Maven Central, I would feel better about revising the SNAPSHOT process for 3.1 going forward, and possibly turning it over to @david.bernard.31
Please do not do this. We don’t want our engine to be available via the official maven repo right now. Especially not with a different build script.
About the release, my script extract jar from official download and it currently miss to provide source.jar and javadoc. It is very similar to yours but :
I try to keep same name groupId, artifactId as 3.1.0 / gradle project to ease the version switch (I often only change the variable for jme’s version).
Also, I use 3.0.0+YYYY-MM-DD as version, because in the distribution I didn’t see info like “it’s 3.0.10”.
About the missing jars (required to publish on central). I’ll try to create :
I’ll publish on snapshot for review before than to central.
OK, I stop experiment to deploy 3.0.0 to central. But what about :
??
Normen,
I understand you can’t trust me as “publisher”. Let me introduce myself, I’ve got some XP as publisher (can be committed with google) :
I hope, it gives some info to help me gain trust point (at least about deployement on a maven repo).
Thats not the point, I trust any halfway intelligent programmer that he can pull this off. You can make a private maven repo for this any time but please don’t publish it to the public maven registry, it would automatically be associated with us. If somebody does this he should be in the core team. And for 3.1, it should not appear anywhere really, its definitely too unstable for use (in terms of coming changes).
I offer you, a near to zero overcost, to be available on public repo (for 3.0 and 3.1). With the switch to gradle I hope of “official” snapshot (nightly / weekly / montly) available on a public repository .
short version :
5 x Why “you don’t want com.jme3 on public repo” ?
Why “If somebody does this he should be in the core team” ?
long version :
SNAPSHOTs are unstables by definition. Snapshot’s users know the risk (breaking api, compatibility, availiablity of the jar …) : it’s at your own risk.
we (users) can used SNAPSHOT because :
you (jme’s dev) can used publication of snapshot to test the deployement before release.
Having jars (Release or snapshot) available in repo is a plus :
With the absence of com.jme3 you block publication of some libs. If every lib’s creator have to publish jme (in it’s own groupId) it’s more confusion for the user (lib creator and user) : Which version to use ? Should I also publish my own jme ? How to merge/remap jme from 2 libs ?
=> no jme extension / lib on central (no lemur, no zay-es, no jme-jfx, no …)
I’m OK to be in the core team as “artifact publisher”
Because we have a different idea of how to use the engine and don’t want to walk people through their IDE of choice, especially for things like Android and iOS deployment and things like that. We don’t see jME as a java library but as a platform to build applications on. With the SDK theres none of the questions you pose, everything is included and you can use your favorite java libraries with that.
Because we want to make sure that the person is available and we trust them. We have 10+ years of experience with people coming, making a fuss and then walking off leaving us with the remnants of whatever they built. Or, even better, causing havoc constantly by telling us what they think should be done and how the engine should be different and in the end only causing fruitless discussions and frustration. If theres discussions we want them to happen with people that we know have some culture of discussion.
(Which you didn’t ask) Because we need to make jME3 actually compatible to maven before we release it there, which includes making a proper build process for native bullet (our modified jbullet version isn’t available on maven) and moving to native bullet in the first place. Additionally our way of handling the native binaries of lwjgl/jogl isn’t really compatible with their maven artifacts, there is a workaround for lwjgl which is possible due to their (accidental) binary naming scheme but we still intend to move to JOGL, which has name conflicts. So, as we always said, we do want to add jME to maven eventually but not in its current form.
Do I have to justify our decisions further or can you get along with these explanations for now?
Thanks for your response (and time).
@normen said: 1) Because we have a different idea of how to use the engine and don't want to walk people through their IDE of choice, especially for things like Android and iOS deployment and things like that. We don't see jME as a java library but as a platform to build applications on. With the SDK theres none of the questions you pose, everything is included and you can use your favorite java libraries with that.
You can’t force people to use the SDK. It’s not often the optimal solution.
@normen said: 2) Because we want to make sure that the person is available and we trust them. We have 10+ years of experience with people coming, making a fuss and then walking off leaving us with the remnants of whatever they built. Or, even better, causing havoc constantly by telling us what they think should be done and how the engine should be different and in the end only causing fruitless discussions and frustration. If theres discussions we want them to happen with people that we know have some culture of discussion.
+1. (I hope, I’m not a Troll)
Mainly why I propose a solution with near to zero change/cost why your current process. IMHO it’s more an ADD than a request to change existing (I didn’t ask for mavenization of the project).
@normen said: 3) (Which you didn't ask) Because we need to make jME3 actually compatible to maven before we release it there, which includes making a proper build process for native bullet (our modified jbullet version isn't available on maven) and moving to native bullet in the first place. Additionally our way of handling the native binaries of lwjgl/jogl isn't really compatible with their maven artifacts, there is a workaround for lwjgl which is possible due to their (accidental) binary naming scheme but we still intend to move to JOGL, which has name conflicts. So, as we always said, we do want to add jME to maven eventually but not in its current form.
publishing snapshot will help to setup/experiment/tune the distribution before the release.
About native : May be I can help with native (I work on internal repo and the distribution of Mamba Nation a java game with native (lwjgl, fmodex))
About jbullet/stackalloc fork : in this case, the simple solution : deploy it under groupId com.jme3 (I did it for my fork (jmbullet) of your fork )
@normen said: Do I have to justify our decisions further or can you get along with these explanations for now?
I would have appreciate more explanation, and not a “NO GO” ;-).
But, for now, I’ll live with the status-quo (I’ll probably go back to the suject later).
If you need help on this subject, I’ll be happy to contribute.
@david.bernard.31 said: Thanks for your response (and time).You can’t force people to use the SDK. It’s not often the optimal solution.
- I switch out of the SDK to be able to use jdk8
- Managing lib and there dependencies with netbeans is not as friendly as via repository (+ version info) and sharing project become very unfriendly if you create netbeans’library,…
You can import maven artifacts to SDK projects no problem, you can use JDK8 with the SDK no problem. And we don’t force anyone to do anything, we just don’t supply maven artifacts as if it was meant to be used this way, which it simply isn’t. If you know your IDE you have no problem whatsoever getting a build with jME going or using this maven repo here.
@david.bernard.31 said: +1. (I hope, I'm not a Troll) Mainly why I propose a solution with near to zero change/cost why your current process. IMHO it's more an ADD than a request to change existing (I didn't ask for mavenization of the project).
See, just as you went away from using the SDK and contributing to that we would sit with your implementation, build system etc. and might not like it, gnomesayin’?
@david.bernard.31 said: publishing snapshot will help to setup/experiment/tune the distribution before the release. About native : May be I can help with native (I work on internal repo and the distribution of Mamba Nation a java game with native (lwjgl, fmodex)) About jbullet/stackalloc fork : in this case, the simple solution : deploy it under groupId com.jme3 (I did it for my fork (jmbullet) of your fork :-) )
We have/had nightly SDK versions for that (not at the moment though due to the transition to 3.1), why would we use maven for that when everything else is not using maven? We’ll put out an experimental 3.1 SDK at some point with current nightlies again.
@david.bernard.31 said: I would have appreciate more explanation, and not a "NO GO" ;-). But, for now, I'll live with the status-quo (I'll probably go back to the suject later).If you need help on this subject, I’ll be happy to contribute.
I thought my whole post was an explanation for our decision for a no-go? Yes, we’ll keep you in mind, you seem very capable.
few comments.
@normen said: You can import maven artifacts to SDK projects no problem,no problem and not friendly (manual dependency management)
@normen said: you can use JDK8 with the SDK no problem.
unless I miss something :
I used the SDK 3.1.0 build & launched from a netbeans 8 but for assets only.
After 3 months with SDK (3.0/3.1) I switch to gradle+eclipse to manage java code. (I also tried to patch SDK to support gradle project with no netbeans/ant script and asset in other location).
@normen said: See, just as you went away from using the SDK and contributing to that we would sit with your implementation, build system etc. and might not like it, gnomesayin'? :)
I not sur to understand the sentence. I don’t request to ignore or replace SDK, I just request to open support to maven/gradle’s users.
@normen said: We have/had nightly versions for that (not at the moment though), why would we use maven for that when everything else is not using maven?
chicken and egg.
So
if ( I (or other user) start using maven/gradle for jme)
then {
maven’repository support will be added ? (it is not the purpose of this thread)
}
?
@normen said: I thought my whole post was an explanation for our decision for a no-go? Yes, we'll keep you in mind, you seem very capable.
Thanks for you support and patience.
@david.bernard.31 said: no problem and not friendly (manual dependency management)
No, theres ANT libraries that let you use maven with ANT, you can add them to the SDK project and use maven libraries with it.
@david.bernard.31 said: unless I miss something : * 3.0 SDK is based on netbeans 7.3 => jdk8 unavailable * jdk8 only for netbeans 8.x => using jme 3.1
Yes, you miss that you can compile with JDK8 no problem, you just don’t get IDE support for the new features.
@david.bernard.31 said: I used the SDK 3.1.0 build & launched from a netbeans 8 but for assets only. After 3 months with SDK (3.0/3.1) I switch to gradle+eclipse to manage java code. (I also tried to patch SDK to support gradle project with no netbeans/ant script and asset in other location).
So, as you see theres no issue doing that. Also the SDK supports any folder, no matter what build system, for assets only already.
@david.bernard.31 said: I not sur to understand the sentence. I don't request to ignore or replace SDK, I just request to open support to maven/gradle's users.
And I said there is no support thats worth the name yet so we don’t let somebody do that without it being under our control. I explained who “not somebody” is in the previous post, it has nothing to do with abilities.
@david.bernard.31 said: chicken and egg. So if ( I (or other user) start using maven/gradle for jme) then { maven'repository support will be added ? (it is not the purpose of this thread) } ?
??
Its not chicken and egg, you just made it chicken and hatchling and its egg to make a point… Our software, that is the software that we wrote and put for free on the web is not based in any way on maven and we have another way to give users a nightly version, which was your argument in the first place. Theres just no good reason to make it available for maven users before we get to a point where its actually compatible with maven, which I said might even be when 3.1 takes real shape. If we put out 3.1 as maven artifacts now, what do you think will people who are just too lazy to use the jar files and love maven do? Use the stable version? I doubt so.
And yes, it is time I invest here. Time I could use talking to the others about how to go about for 3.1, time I could use to clean up the build script or fix the niftygui editor integration. And you are not the first one asking for maven support and not the first one who thinks he has good arguments why we should do something another way.
FYI: I start an other topic about jme3stuff-a-dedicated-maven-repository-for-jme3
Due to circumstances beyond our control theres now an official maven repo for jME3 available, see this post: http://hub.jmonkeyengine.org/forum/topic/official-maven-repo-for-jme3-0-stable-available-please-test/