Git Product home page Git Product logo

Comments (4)

yuuka-miya avatar yuuka-miya commented on May 25, 2024

Wouldn't it fall on you to test your mixins locally before submitting to your CI, or is this for unit testing?

from mixin.

jamierocks avatar jamierocks commented on May 25, 2024

Not only will it allow it to be used on ci's but be able to be used in projects that aren't mc related.

from mixin.

Mumfrey avatar Mumfrey commented on May 25, 2024

Allowing Mixin to be started without launchwrapper (with Forge on the classpath) would allow the actual application of mixins, not just their compilation, to be tested on a CI server, without the need to start a Minecraft server instance.

No it won't, at least not very effectively, because you still need to instance the upstream transformers in order for application of the mixins to work in most cases. Applying mixins to un-transformed bytecode has applications when you're not using it for a downstream project (eg. say Lex wanted to use mixins to implement parts of Forge itself, he could write mixins which worked on the un-transformed bytecode and it would make sense to apply those outside of a real runtime environment) but when you're relying on the work of upstream transformers, all you're going to do is bring yourself pain and suffering if you attempt to apply the mixin to the "raw" bytecode.

In other words, if you're thinking of using a feature like this to test application of Sponge mixins then you're going to need some pre-transformed bytecode hanging around and/or to run the upstream transformers first as part of your test cycle. Even if it does work, applying mixins in a different context doesn't really provide any value add from the point of view of testing because it could still fail when run "for real" with the upstream transformers in play.

Not only will it allow it to be used on ci's but be able to be used in projects that aren't mc related.

Launchwrapper is pretty much environment-agnostic, you can (and some of us already do) use launchwrapper on projects which aren't mc related, you can also use launchwrapper interfaces even if you're not using the launchwrapper classloader itself, for example in a custom classloader there's nothing which says you can't consume instances of IClassTransformer.

from mixin.

Mumfrey avatar Mumfrey commented on May 25, 2024

Closing if there are no further comments, similar functionality to the proposed is already roadmapped and this issue doesn't really contribute anything.

from mixin.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.