1. The forums will be archived and moved to a read only mode in about 2 weeks (mid march).

API Stabilization

Discussion in 'General discussion' started by SteveDev386, Aug 21, 2017.

  1. SteveDev386

    SteveDev386 Silverfish

    Messages:
    17
    GitHub:
    dschwartz783
    I'm curious as to if there's any hope for an API stabilization in the near future. The constant version bumps and incompatible changes is making it somewhat difficult to maintain plugins. I assume it'll die down at some point, I'm just curious as to where we are on that.
     
    64FF00 likes this.
  2. Muqsit

    Muqsit Chicken

    Messages:
    1,548
    GitHub:
    muqsit
    We are at #PHP_INT_MIN
    There's no way of finding "where" or "how many" more API breaks till no more of them. Thats an invalid question. It's almost like questioning "How long until every bug is fixed?" Heh? I don't follow a time schedule as to which bugs should I be fixing on Saturdays and Sundays. That just sounds stupid. If I can come up with a neat solution for the issue, I fix the issue at that instance, not schedule the commit for next week.
     
  3. Muqsit

    Muqsit Chicken

    Messages:
    1,548
    GitHub:
    muqsit
    I haven't even gone that deep into your question. I haven't talked about backwards compatibility yet.
     
    sharletsings123 and 64FF00 like this.
  4. Muqsit

    Muqsit Chicken

    Messages:
    1,548
    GitHub:
    muqsit
    No, if you've ever worked with a project that existed since PHP 5.7, and then hasn't yet adopted all then 7.0 functions for the better, I'd say this is expected. I'm guessing you are manually finding and replacing words whenever an API break happens. Use tools like sed if on any Linux distros, or fnr.exe if on Windows or just code a 2 minute script in PHP to do the job for you.
    I don't think you get the point of improvement. It's hard to just "take a break" while the better way to work around the problem, not only for the plugin developers but for PocketMine itself would be to modify the function (which also at times does break the function). If you're a plugin developer and have your plugins on GitHub and are fed up of issues about API compatibility, don't blindly add in future API build names. APIs get bumped for a reason. Yes the APIs do get bumped very so often but if you hate it, then you definitely don't know why the API was bumped for, what improvements were made, how this can ease your problems as a plugin developer etc. The function breaks isn't a bad thing. Stop focusing on it as something that maddens you. Think about the improvements.
     
    Last edited: Aug 24, 2017
    sharletsings123 and 64FF00 like this.
  5. KnownUnown

    KnownUnown Spider Jockey Poggit Reviewer

    Messages:
    47
    GitHub:
    knownunown
    To be honest, I do agree that the constant API version bumps and changes are annoying from a plugin developer's perspective. The problem is, there is no stable release that supports the latest version of MCPE (not to mention the various problems with PM core that the breaking changes are fixing.) I don't think there's really a timeframe for when the API will be stable, so for now I guess, hold on tight!
     
    64FF00 likes this.
  6. robske_110 (Tim)

    robske_110 (Tim) Wither Skeleton Poggit Reviewer

    Messages:
    1,342
    GitHub:
    robske110
    Actually i see it quite amusing and fun from a plugin dev perspective. From a server owener perspective it's absolute horror. And there will probably be a 3.0.0 API from which on the breaking changes should get less. But currently there is so much going on and basically one person is doing allthework so that will take a really long time. I think there once was a feature/todo list for 3.0.0, but right now there is no real list of things that need to be done until 3.0.0 is released. That fact alone indicates that it will not be in near future. And if MCPE continues to change (i say change here, improve is sth at this rate building an API that will not require breaking changes is nearly impossible. For example the typehints in tasks and in onCommand really 'broke' every (well almost every) plugin, and it was not related to MCPE changes. But that just really helps with debugging and easier code reading. Most of the other changes aim to help later maintaing of PM. Because currently there is too much work to adjust to changes, new Blocks require an whole file while most are literally just some data with no logic whatsoever associated with them.
     
  7. dktapps

    dktapps Administrator Staff Member PMMP Team

    Messages:
    774
    GitHub:
    dktapps
    tl;dr: don't ask for ETAs and you won't be disappointed.
     
    sharletsings123, 64FF00, falk and 4 others like this.
  8. Thunder33345

    Thunder33345 Moderator Staff Member

    Messages:
    2,137
    GitHub:
    Thunder33345
    I actually agree that no one like breaking changes,
    BUT remember PMMP currently is in 3.0.0-ALPHA the ALPHA prefix is there for a reason, indicating it's not a stable release or for production thus breaks will occur
    but no one is stopping you to use the 2.0.0 "cutting edge" or the 1.0 "stable branch"
     
  9. FiberglassCivic

    FiberglassCivic Spider Jockey

    Messages:
    39
    GitHub:
    95civicsi
    I find the question very valid from the standpoint of development focus. SteveDev386's question isn't nearly as obscure as wanting to know when every bug will be fixed. The development of a stable (not perfect) API is something that is necessary when developing software that is expected to interface with other, external, software. One of the reasons why PMMP has appeal is the ability to add plugins, and as such, plugin development will eventually need a stable API to work with. So while you may not specifically dedicate certain days or time frames to working on specific bugs, it would be possible to determine if the API is a primary focus in the current development of PMMP or something that is on the back burner while other concerns are addressed.

    @SteveDev386 From what I've seen, I would think that API development isn't the most important concern at the moment because there are still things about how the core server works that need to be fixed, updated, or implemented. Changes made there will directly impact how the API needs to work. Once the core server has reached a stable level of basic function, where there are no significant game play problems and all basic components are working as expected, you should expect the API to stabilize soon after.
     
    64FF00 and Muqsit like this.
  10. SOFe

    SOFe Administrator Staff Member PMMP Team Poggit Admin

    Messages:
    1,968
    GitHub:
    sof3
    The problem is that our API will be stable. It is just that it is still on the way of stabilizing.
     
    sharletsings123 and 64FF00 like this.
  11. Thunder33345

    Thunder33345 Moderator Staff Member

    Messages:
    2,137
    GitHub:
    Thunder33345
    there's even MORE breaking changes on the rise, so please hold off development on alpha and wait
    or just keep up with the changes
    like backward compatibility is nice but some things just got to go when it gets in the way of newer better things

    and PMMP already have something to detect changes, the API version it's not there for the sake of begin there and annoy the crap out of people, but a tool for developer to know for changes, and prevent their plugin to run in incompatible versions
     
  12. sharletsings123

    sharletsings123 Baby Zombie

    Messages:
    116
    GitHub:
    sharletk
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.