Distinction between emonCMS and emonCMS.org

Working through the emonCMS API, I was surprised to learn that the emonCMS code on emoncms.org runs out of a different repository (emoncms/emoncmsorg) than the distributed emonCMS (emoncms/emoncms) code. I’ve been working on going through the API (see this community thread and my work in progress) and there appear to be a number of differences in both implementation and documentation between the .ORG version and the master branch of the self-hosted emoncms version.

Is there guidance on how these two repos relate with one another? Is API compatibility between the two (.ORG and self-hosted) a desired goal? Today there are a number of differences (such as the missing input/process/move subaction from the self-hosted version) and I’m not sure what the direction of the project is in order to code defensively for the evolution of this nifty platform.

I’m mainly seeking to understand if writing an interface library that will work with both self-hosted and the .ORG version is practical (looking awkward at the moment) and the best place to report bugs/contribute code when issues are identified (the .ORG API has a few “interesting” behaviors :wink:).

As always, thanks for the help!

AFAIK there shouldn’t be any real “differences” in api use, only “omissions” where the hosted version has limited features and/or restrictions to ease the server load.

Any API functions that do exist on both should ideally work the same way, so if you are aware of any differences it would be good if you could point them out so that it can be remedied, documented or at the very least we (that offer support) are aware and able to help anyone that does caught out.

Hey there, Paul! Thanks for the response.

Unfortunately there are some features on .ORG that are not implemented in the mainline of the self-hosted version. All of the input/process actions (moving, setting, etc.) are only present on .ORG and not on the self-hosted code base. Once I discovered this to be the case (with your help! :grin:) and that .ORG uses its own repo, I made this post and stopped further investigation until the relationship between the two code bases is clarified.

Apart from the missing process list actions, I’m eager to understand how development happens on emoncms and how code changes can be proposed. I’ve found API calls that, if slightly malformed, can pretty thoroughly break emoncms. I’d like to contribute other issues, documentation fixes, and even brush off my dusty PHP knowledge to help out with the coding. Having three different locations for code and docs (openenergymonitor/guide, emoncms/emoncms, and emoncms/emoncmsorg) is confusing me. :confused: Would love to get enlightenment here so that I could be a better user and contributor!