ryobg / JContainers

JSON-based data structures for Papyrus - the TESV Skyrim SE scripting language
MIT License
107 stars 23 forks source link

v4.0.0-alpha/beta: User reports #10

Closed ryobg closed 6 years ago

ryobg commented 6 years ago

Ok, the first version for trials was released

https://github.com/ryobg/JContainers/releases/tag/v4.0.0-alpha

The next milestone is to gather enough volunteers willing to try it out and together chase the bugs and issues away. This issue is to keep a track of various notes during that process.

EDIT: Added newer, beta release https://github.com/ryobg/JContainers/releases/tag/v4.0.1-beta

aers commented 6 years ago

Just want to leave a message to anyone attempting to try LE mods with this and getting JContainers not found/version errors, since people are running into this over on the LL thread.

A lot of mods have scripts that check specifically for JContainers version 3 with some subset of minor versions, you'll have to modify those scripts to check for version 4.0 and then compile the modified scripts.

Specifically you're looking for JContainers.APIVersion() and JContainers.FeatureVersion() checks.

This isn't an error with this build.

ryobg commented 6 years ago

Yes, thank you @aers - I think to include this note in the release info.

Mod authors (and their friends ^^) porting over the new JC has at least to check over again their usage of the API. Currently, I'm reviewing it as I noted that there are many deprecated functions and before the official release I want to be sure why they are marked as such and what alternative users have. Of course, such "breaking" news would be kept to minimal, but if something is dangerous practice or dragging over the whole design - now is one of the best times to get rid of the past.

ArizonaSteve commented 6 years ago

Rewriting one of my mods to use JContainers as there is a lot of mapping involved and using Papyrus arrays is cumbersome to put it mildly. Extensive use so far of JValue, JArray, JMap and JIntMap. So far no issues, but will comment if I find anything.

ryobg commented 6 years ago

Thank you for the report @ArizonaSteve.

Looking at how the things go I think we can soon move to extend the user's base. Port-related issues are going to be harder and harder to find and most probably, the ones which are inherent in the original design will start to come back. And that's how it should be.

To follow up on my API update:

Good news is that the deprecated functions were dummy, so it was better to remove them. I do not think that somebody relied on them, and if he/she did - it was really wrong to do so:

JDB.readFromFile() -- this is not the JValue.readFromFile() !
JContainers.lastError()
JContainers.lastErrorString()
ryobg commented 6 years ago

I'm now pulling the last major changes - they don't prove breaking, so I do not expect any issues.

I will also upload that release as "beta". I believe it is time. From now on, the API is frozen and only bug fixing will be made. I will also start digging deep mainly for any potential issues of 32 vs 64.

Thank you all for the support!

SilverIce commented 6 years ago

Hello Glad to see that the project is alive (especially with CI integrated).

@ArizonaSteve, I'd suggest to use/try domains feature - huge mods may benefit due to cheap clean-up procedure during uninstall

ArizonaSteve commented 6 years ago

I figured out how to create an SKSE64 plugin of my own, and am switching a lot of my code to C++. As a result I'll be moving away from JContainers but will continue to test the beta up until I make the final switch over.

ryobg commented 6 years ago

@ArizonaSteve thanks! I do not know what is your design, but if you need containers to talk to/from Papyrus - you know where to find that. Don't forget that there is also and C/C++ API to JC.

@SilverIce thanks for passing by! Honestly I have no expertise in this system. It was all just to help ^^.

ryobg commented 6 years ago

There is nothing special to fix or update anymore with regard to the porting.

Then there are some things that I would like to fix like the small memory leak with the patched function and maybe even, see how and whether SKSE can be pulled off from the project. I will evaluate that step these days and if not I think it is time to move out from Beta. The word spreads and I would like to keep the releases to user space sites.

SilverIce commented 6 years ago

@ryobg it's perfectly possible to create a mirror repo on github containing SKSE sources (I don't think the authors will be against)

ryobg commented 6 years ago

@SilverIce I would like some talk with you for some clarifications.

I see sometimes SKSE is included in mods without apparent complain, but this is for the sake of maintenance and their statement about modify and/or release.

RealAntithesis commented 6 years ago

I asked SilverIce this before the LE release of AH Hotkeys. Bundling Jcontainers with the mod was allowed on the basis that it was more convenient for end users who didn't have to separately download yet another dependency on top of SKSE, SkyUI, UILib (also bundled with AH Hotkeys and some other mods) etc.

It did mean potential confusion with different versions of JContainers being bundled with different mods, but that can be resolved by installing the latest compatible version of Jcontainers (which should be backwards compatible with most earlier versions) after all the mods that use it (made easier when using ModOrganizer).

ryobg commented 6 years ago

@RealAntithesis,

I would recommend to state clearly your dependency and its version, eventually link later to a distro where JC would reside (e.g. Nexus, but not GitHub - I suppose soon JC will pop up and there, but first I want to check that other potential issue).

There are positive & negative sides of such choice which are generaly known, so it is up to you. Blessed before, blessed again.

RealAntithesis commented 6 years ago

Yep, will do.

RealAntithesis commented 6 years ago

AH Hotkeys is now released here : https://www.nexusmods.com/skyrimspecialedition/mods/15761. I've noted the JContainers64 version and the fact it is still in Beta.

ryobg commented 6 years ago

Like 2 months passed already and on the edge of bringing the next version up, I believe we can say it is out of Beta. There are many users, and no critical issues were found. Of course, there are some bugs to be discovered and features to be implemented, but this is part of the normal software flow. I consider the beta user experience program closed.