1 2 Previous Next 17 Replies Latest reply on Jul 24, 2013 9:19 AM by lincolnthree Go to original post
      • 15. Re: How to debug ClassNotFoundExceptions for Forge JARs?
        lincolnthree

        AH! I understand now.

         

        Ok, so you don't actually have to release the plugin. Forge actually doesn't care what version the POM file is. It only looks at the git branch/tag name, which is the minimum supported Forge API version, where the version is "MAJOR.Minor.micro.Something".

         

        Major version increments are always in-compatible.

        Minor version increments are backwards compatible with existing plugins depending previous minor versions.

        Micro version increments are backwards compatible with any existing and new plugins with the same Major and Minor versions.

         

        Does this help?

         

        This should probably go in the docs... ugh. I think it's time to write a documentation plan. Just did it for Rewrite (https://docs.google.com/document/d/17B03_n1OpsdEcqnmha0ch13xjz1pikiEagLgkMjIgFE/edit) , need to do something similar for Forge.

        • 16. Re: How to debug ClassNotFoundExceptions for Forge JARs?
          lennartj

          Hello again Lincoln,

           

          While there is a mention of this in the documentation, it is slightly contraintuitive for Maven-savvy people (who are not Forge-aware enough).

          We are always fed the mantra "dont release SNAPSHOT versions", and while the Forge way promotes releasing snapshots, it is countrary to good maven practises - unless one explains quite carefully how it is supposed to work.

           

          Another question here ...

           

          ... in the repository.yaml file, all plugins *are* presented with versions. If Forge ignores the version of the POM in the plugin artifact, why is it actually present in the repository.yaml?

          Is the version present in the repository.yaml ignored as well?

           

          Otherwise, if I interpret you correctly, the structure of Forge (only checking branch names) and the format of repository.yaml (holding a Maven model version) seems to

          *require* that all plugins use snapshot versions. Otherwise, Forge ignores updates within the branch, unless the version matches the one given in repository.yaml?

          Right?

          • 17. Re: How to debug ClassNotFoundExceptions for Forge JARs?
            lincolnthree

            Yeah I get that. It's a good point, though I'd argue that Forge promotes not releasing anything at all, not even SNAPSHOTs since you never have to publish anything to any maven repository - it's all just done through github.

             

            Forge will always take the latest code from the branch or ref that you have requested to install (or that it has determined it should install if no --ref override is specififed)

             

            We had originally used the maven version to support installing a pre-released artifact, but this functionality was disabled some versions ago due to a number of problems with the implementation.

             

            Good questions.

            1 2 Previous Next