brian at pontarelli.com
Thu Dec 1 08:43:59 PST 2011
Things at Inversoft have been getting extremely busy lately and my free time is becoming less existent each day. While this is good for the company, it is bad for my involvement in other areas. I'm going to have to back burner my involvement with the Jigsaw groups and lists for the foreseeable future, but I wanted to put down some final thoughts before I go.
Here's a quick list of topics I wanted to discuss but didn't quite get to:
Version compatibility (we started talking about this some)
Compiling Java code (I'm not convinced that javac is the best dependency resolution system)
Resolving from multiple repositories and security (this is important for corporations with IP stored in internal repositories as well as standard repositories such as the Maven repositories)
Dependency meta-data (I feel strongly this should be outside of the module to improve performance. I also feel this should be standardized so that the JDK and other tools can use the format including Maven, Savant, and Ivy)
Transitive dependencies (there are some items to discuss such as when transitive dependencies are included in the module/classpath. I feel that at compile time transitive dependencies should not be included)
Dependency exclusion (I'm not sure these are a valid use-case if you have version compatibility)
Optional dependencies (I think these make more sense than exclusions, but I'm still not convinced about them. I sorta feel that if a project has optional dependencies it really should be multiple projects in a hierarchy)
Version ranges (I think these should not be included)
Snapshot versions (some form of these needs to be supported but their needs to be rules about them and how they impact releasing. i.e. you should not be able to release a full version of a module that depends on a snapshot version of a dependency. Full versions are things like 1.1)
Version numbering (I feel that my EBNF describes the most common version scheme and that should cover 99% of the cases. I also feel that allowing other version schemes isn't a good idea, but is possible)
I'm certain that there are other things I'm missing, but those are the things that I've worked on with Savant and other dependency systems over the years. Good luck and feel free to contact me directly at anytime.
More information about the jigsaw-dev