Discussion in 'News and Announcements' started by md_5, Dec 13, 2012.

Thread Status:
Not open for further replies.
  1. md_5

    Administrator Developer

    Hey everyone! I would like to make a post today which is not based on the Spigot project itself but rather an area that is lacking in both our new community as well as myself: attitude. It has been brought to my attention that my behavior, and the behavior of others, does not reflect too kindly on this project. There are a few things I would like to discuss; most importantly beginning with a very important and sincere apology.

    I would like to apologize first and foremost for my own actions. There have been misdirected comments made by myself which were incorrect as well as looked to lay the blame elsewhere. Comments which inspired people who read them to take an attitude different to that which they may have taken otherwise, some of which were not even relevant to the context in which they were presented. I truly apologize for the lost time and effects caused as a result of these comments and the ramifications to those who read and acted upon them.

    To you, the Spigot community, I would like to say thank you for the wonderful support you have continued to provide here while this project grows. This post serves to remind you all that once you are involved with Spigot, the way you behave does reflect on the project and on our team. Spigot is not an excuse or reason for anything and it should stay that way. We do not promote attacking other projects and decisions based on what you might think may happen here, and neither should you. We highly support and respect the work of others.

    Now since it is pretty obvious to what the above is apologizing for, I would like to go out and address these issues, and why the reasoning is flawed, as well as why Spigot will not be reverting or altering what is a perfectly good commit. The commit I am referring to is “Refactor all OBC, libs, and NMS into versioned packages.”, and of course my previous discussion on breaking API changes. The paramount thing to remember is that all these changes occurred in development builds. Developments builds are not suitable for everyday use, and this is a statement that will be pushed from now on. They should be used with extreme caution, bearing in mind that the changes within may be altered at any minute and that most plugin developers will not immediately support them. Regarding these development changes, it is understandable to jump the gun and voice your opinion regarding what you think of the commit, what plugins it breaks and so forth. However; these are all minor, short term annoyances and should not affect you or your server updating processes in any major way. By taking the net.minecraft.server and org.bukkit.craftbukkit packages and renaming them to their respective versions every update, many things are guaranteed, ultimately ending with a more reliable and safer server. You, as the server admin can now see at a glance which of your plugins break on each update, and then can update them without any damage to your server. This new commit comes with many good benefits such as it:
    • Prevents accidental server corruption
    • Enables easy identification of broken plugins
    • Forces developers to ensure their plugin works 100% upon each new Minecraft release
    • Allows for developers to write backwards compatible plugins
    Look past the rabble in the commit discussion and the various counter arguments. As a server owner and a plugin developer, sit back and take 5 minutes to think about how good this commit is for you. You can now update your server with no risk of data loss, you can write your plugin to support the last few Minecraft versions all at once. As many server owners who have done this have said, it took nearly an hour, but now I see why this is good. What is an hour when running a server?

    Alongside the suggestion of a reversion, other alternatives were discussed in this commit, however most, if not all of them, are not viable alternatives for one simple reason: CraftBukkit, and by inheritance Spigot, does not support poking into Minecraft code. This will not change. As a developer if you need a piece of code that is not available you can either make a pull request to include it, or deal with the consequences of it. Once again I would again like to point out the timing of this and the comments I made about API breakages, they were made during a development build. Spigot has unfortunately prompted many server admins to use these development builds when they really should be using the latest stable releases, beta builds in this case. The prime reason for this is the fact that the latest changes are only ever applied to the latest CraftBukkit commits. Development builds, should not be used without expecting breakages. They serve to allow everyone to get a taste of what is coming next, and allows everyone to prepare for these upcoming changes. Once again attempting to lay the blame elsewhere was an incredibly selfish move, and for that I am truly sorry. If you so wish to use a development build, do not be surprised by breakages, and if you experience any issues use a recommended or beta build.

    Effective the next CraftBukkit beta / recommended build, Spigot will be changing its development cycle in a bid to reduce confusion and issues caused by people using development builds when they really shouldn’t be. We will be converting our repository to a series of patch files where each change we make can be reviewed, disabled or removed on a case by case basis. Whilst the patches will be in continual development, upstream commits from Bukkit and CraftBukkit, aside from those present in a beta or recommend build, will not be pulled in. This will lead to a more reliable, flexible and compatible Spigot. If there is a commit that fills a real need or requirement, you may bring this up with us, and a member of the team will investigate its inclusion on a case by case basis.

    So I finish this post quite simply saying I am sorry for the trouble that my misdirection and selfishness has caused everyone. I hope that I have addressed everything I need to address, and I thank you once again for your support.

    • Like x 6
    • Agree x 3
    • Friendly x 2
    • Winner x 1
    • Optimistic x 1
  2. PhanaticD


    I think the real reason everyone went after the dev builds so intensely was because we all wanted less lag on our servers, once you fixed the map thing and the lag disappeared I was fine using older versions
    • Agree Agree x 1
  3. If I read this right, Spigot is essentially going to be always building on top of the latest CraftBukkit Beta or RB?
  4. md_5

    Administrator Developer

    With probably a few (or a lot) of exceptions. But it will be done in such a way we are sure there are 0 breaks.
    • Like Like x 1
  5. Puremin0rez


    The problem at least that I have experienced, is what is classified as a Spigot Recommended build?

    I don't really see any indication that one build is a dev build and one is recommended by the Spigot team, of course I could see that it's being built off of the Bukkit dev changes, but not many people will understand the latest build does NOT mean it's perfectly okay for production use. The problem is, usually the best performance changes from you (md_5) are mixed into the dev builds, where things get confusing for many people because we're being told NOT to use them, but in turn our server has horrible lag because we do NOT use them. It's just really confusing and I could definitely see why some members recently have been very confused - I know the difference, i'm just speaking for them.

    I'm glad to see you won't be basing everything off of dev builds now, that way we can get the most stable experience with the almighty performance improvements.

    Keep on keepin' <3
    • Winner Winner x 1
  6. I agree. Right when md_5 fixed the Maps in Frames and the world configs was when the breaking changes were all jumbled in there. I just needed those last few commits in before the breaks and I would have been very content. But we can never take anything for granted.

    I look forward to the new development process and continue to support this project.
    • Agree Agree x 1
  7. Great. I think this is a really positive step in Spigot development.

    If I could request another change, though? There are commits pushed to Spigot-master that look like "Use a new non conflicting set of fast arrays. HAS NOT BEEN TESTED." I don't really care how you want to do it -- different branches, tagging commits, or whatever, but being able to know that your build only has tested, "release-quality" commits would be a very good thing.
  8. mikeprimm

    mikeprimm Retired Developer

    With respect to the "recommended builds" for Spigot, the above process changes are (IMHO) a key part of making that sort of thing practical - in many ways, its hard to talk about a Spigot RB when our builds aren't based on a 'release-grade' CraftBukkit. With this change, we start with a good foundation, add our changes, and can then talk meaningfully about recommended combinations of the CB release-grade build and our corresponding release-grade modifications. On the 'unstable' changes, I think we still are going to have some more discussions - I've tended to handle such things on branches, and invite the 'brave-or-possibly-foolish' to try out my branches (or dev builds of my branches) with all the appropriate caveats. I'm game for continuing to do this, or adopting a common process that yields similar results.
  9. Bestle


    Yeah I would appreciate a branch or something that is always updated with the latest CraftBukkit changes just like now.
    • Agree Agree x 1
  10. Latest build #322 still breaks all plugins.
    • Disagree Disagree x 1
  11. PhanaticD


    ur not supposed to use dev builds :O
    • Agree Agree x 2
    • Disagree Disagree x 1
  12. So I read all this, and where can I find the latest non-dev build?
  13. Puremin0rez


    249 is apparently the current stable build
    • Informative Informative x 2
  14. Thank you!
    Do you know if there is a link that will always lead to the latest non-dev build? That I could use with wget if possible.
  15. Puremin0rez


    Not sure, the whole "recommended" system of Spigot is not really existent at the moment but md_5 is working on it
    • Informative Informative x 1
  16. Ok, thanks!
  17. joehot200


    MD_5, you still provide the best minecraft server out there, no matter what you have said :) for that, we thank you, for saving us money buying more resorces, and for saving users from the lag they always hate.
    • Agree Agree x 2
  18. Ark


    I was pretty upset about bukkit breaking so many plugins, but reading this helped put me at ease with the change. my primary worry is only that plugins wont update :(
  19. joehot200


    if a plugin is a good one, someone else will want to take it on.
    if It isn't, you have to do without.

    however, I know what you mean, now I don't have creeperheal any more it makes things so much harder. people even want the map reset because of all the greifings!
  20. Ark


    logblock or worldguard maybe? lb can rollback creeper douchyness
Thread Status:
Not open for further replies.