Thread Tools Display Modes
08/19/15, 06:55 AM   #21
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 1,577
I updated the addon manifest wiki page a few days ago and added a dedicated section about variables. Maybe we should mention somewhere that it is case sensitive?
I am also still not sure what $(languageDirectory) expands to. Chip didn't answer my question about it and it is not used anywhere in the UI code.
 
08/19/15, 07:31 AM   #22
merlight
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 671
Originally Posted by sirinsidiator View Post
I updated the addon manifest wiki page a few days ago and added a dedicated section about variables. Maybe we should mention somewhere that it is case sensitive?
I am also still not sure what $(languageDirectory) expands to. Chip didn't answer my question about it and it is not used anywhere in the UI code.
I ran ESO with WINEDEBUG=file, thinking I'd be able to see what file it tries to open when I have missing/$(languageDirectory)/file in manifest, but no luck. Apparently ESO uses FindFirst/NextFile "*.*" to scan the whole add-on directory, then reads the manifest, replaces the variable and only opens files it has already found.
 
08/19/15, 05:21 PM   #23
circonian
AddOn Author - Click to view addons
Join Date: May 2014
Posts: 613
All of the localization.txt files use it. Is it something compiled that we don't have access to?

pregamelocalization.txt
Lua Code:
  1. EsoUI\PregameLocalization\LocalizePregameGeneratedStrings.lua
  2. $(languageDirectory)\lang\$(language)_pregame.lua

Last edited by circonian : 08/19/15 at 05:28 PM.
 
08/20/15, 08:36 AM   #24
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 1,577
Ah. I had only *.lua and *.xml set in my search filter.

Code:
$(languageDirectory)\lang\$(language)_pregame.lua
It seems to refer to this file:
\esoui\lang\en_pregame.lua
I guess it expands to "esoui" then?
 
02/23/16, 10:28 AM   #25
Wandamey
Guest
Posts: n/a
please Chip, could you look into adding a support for multiple valid API to accompany this marvelous variable?
with a syntax like votan tried, a long long time ago :

Originally Posted by votan
## APIVersion: 100011 100012
or
## APIVersion: 100011
## APIVersion: 100012
That way we would be able to upload only once before the patch as soon as it's tested on PTS if we want to, and there wouldn't be any downtime between NA and EU patches too. And stay under authors control too.

Thank you very much.

Last edited by Wandamey : 02/23/16 at 10:52 AM. Reason: hypocoffein typing
 
02/23/16, 10:38 AM   #26
Ayantir
 
Ayantir's Avatar
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 1,019
+1 for this, with big addons, I often have a comment saying that the addon isn't functionnal the D-Day because EU users are updating too quickly.

And for some addons, I cannot really wait EU users because NA ones are totally lost without their modified UI.

Those values will tell AddonManager the API compliance of the code, avoiding the out-of date state at each API bump, linked with $(Apiversion) it will help a lot to anticipate changes.
 
02/23/16, 12:04 PM   #27
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 1,577
Yes please. Without that, the added APIVersion variable is only half as useful as it could be.
 
02/23/16, 12:26 PM   #28
dopiate
AddOn Author - Click to view addons
Join Date: Jun 2014
Posts: 142
Originally Posted by sirinsidiator View Post
Yes please. Without that, the added APIVersion variable is only half as useful as it could be.
We talked about multiple variable API's in Fast API.

Do you not want it to support that anymore?

It was in my list of things to do.

Let me know,
-d

We discussed it here and I had planned to implement it.

Last edited by dopiate : 02/23/16 at 12:30 PM.
 
02/23/16, 01:05 PM   #29
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 1,577
Originally Posted by dopiate View Post
We talked about multiple variable API's in Fast API.

Do you not want it to support that anymore?

It was in my list of things to do.

Let me know,
-d

We discussed it here and I had planned to implement it.
I know and I will still use FastAPI as long as there is no better solution available.
That being said, the game itself supporting multiple API version in the addon manifest is something that should have been available all along and I would like to see it becoming a reality.
 
02/23/16, 01:08 PM   #30
dopiate
AddOn Author - Click to view addons
Join Date: Jun 2014
Posts: 142
Originally Posted by sirinsidiator View Post
I know and I will still use FastAPI as long as there is no better solution available.
That being said, the game itself supporting multiple API version in the addon manifest is something that should have been available all along and I would like to see it becoming a reality.
I completely agree but since it doesn't I figured this will work for now.

I'm going back over all your PM's and my notes and if you are interested I can send you betas for testing if you want.

Just looking over the code now.

-d
 
02/23/16, 02:39 PM   #31
merlight
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 671
I don't use Minion myself, but I think most of these issues would disappear if it utilized the compatibility field that's attached to each uploaded add-on. Once you start adding/fixing stuff that's on the PTS, you'd simply uncheck compatibility with Live, and Minion wouldn't install it because it would require a higher game version. This would also gracefully work during the period when NA and EU have different game versions.
 
02/23/16, 02:51 PM   #32
Wandamey
Guest
Posts: n/a
Originally Posted by merlight View Post
I don't use Minion myself, but I think most of these issues would disappear if it utilized the compatibility field that's attached to each uploaded add-on. Once you start adding/fixing stuff that's on the PTS, you'd simply uncheck compatibility with Live, and Minion wouldn't install it because it would require a higher game version. This would also gracefully work during the period when NA and EU have different game versions.
it's not about getting the right file since we can achieve that with $(APIversion) now, it's about not having to re-upload the same file with a new manifest to get rid of the out-of-date tag when the right file is already in use.
 
02/23/16, 02:52 PM   #33
dopiate
AddOn Author - Click to view addons
Join Date: Jun 2014
Posts: 142
Originally Posted by merlight View Post
I don't use Minion myself, but I think most of these issues would disappear if it utilized the compatibility field that's attached to each uploaded add-on. Once you start adding/fixing stuff that's on the PTS, you'd simply uncheck compatibility with Live, and Minion wouldn't install it because it would require a higher game version. This would also gracefully work during the period when NA and EU have different game versions.

You can see what I'm doing here..

-d
 
02/23/16, 03:26 PM   #34
merlight
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 671
Originally Posted by Wandamey View Post
it's not about getting the right file since we can achieve that with $(APIversion) now ...
.. until the APIVersion changes and your addon breaks for no other reason than that a meaningless number changed. $(APIVersion) in manifest is probably the second worst solution to the problem.

Originally Posted by Wandamey View Post
... it's about not having to re-upload the same file with a new manifest to get rid of the out-of-date tag when the right file is already in use.
Instead, you have to re-upload the same file with a new name when APIVersion changes again.

This is exactly what I meant by "most of these issues would disappear" -- you wouldn't have to re-upload anything if Minion only installed add-ons compatible with the installed version of the game.
 
02/23/16, 03:29 PM   #35
merlight
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 671
Originally Posted by dopiate View Post
You can see what I'm doing here..

-d
I appreciate the effort, and like it for the fact that it's a hack. But it should be an integral part of a proper add-on manager.
 
02/23/16, 04:00 PM   #36
Wandamey
Guest
Posts: n/a
Originally Posted by merlight View Post
.. until the APIVersion changes and your addon breaks for no other reason than that a meaningless number changed. $(APIVersion) in manifest is probably the second worst solution to the problem.
if you are having troubles using this variable, there is a wiki page explaining how to thanks to Sirinsidiator : http://wiki.esoui.com/Addon_manifest_%28.txt%29_format

Instead, you have to re-upload the same file with a new name when APIVersion changes again.

This is exactly what I meant by "most of these issues would disappear" -- you wouldn't have to re-upload anything if Minion only installed add-ons compatible with the installed version of the game.
Yet if I had something like this I could upload my already tested on PTS addons with my API var and both APIversions and go on holidays next week. Instead I can't, even if I'm finished with all of my homework.

Having this would solve all the problems. Not just most of them. And without even mentionning how easy it is to forget to check the compatibility boxes when uploading and the changes it would require for Dolby. Which I think would be more trouble than just allowing multiple APIversion. But it's just a wild guess.
 
02/23/16, 04:04 PM   #37
dopiate
AddOn Author - Click to view addons
Join Date: Jun 2014
Posts: 142
Originally Posted by merlight View Post
I appreciate the effort, and like it for the fact that it's a hack. But it should be an integral part of a proper add-on manager.
I don't think anyone disagrees with you there.

-d
 
02/24/16, 07:00 AM   #38
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 1,577
Originally Posted by Wandamey View Post
if you are having troubles using this variable, there is a wiki page explaining how to thanks to Sirinsidiator : http://wiki.esoui.com/Addon_manifest_%28.txt%29_format
What merlight is referring to is my failure to properly use it in sidWarTools.
It worked as expected for the transition on one update, but I didn't update sidWarTools for a long time and then the next update came along and suddenly there was an error that wasn't there before, because one file was missing.
So the proper way to use it, is to provide the files for the next api version without the use of $(APIVersion) and the old files with it like this:
Code:
myAddon.lua
myAddon_$(APIVersion).lua
And inside the file you wrap the code into a function MyAddon.Initialize that gets executed from a third file (e.g. startup).
When launched with the old update, the myAddon_100013.lua is loaded and overwrites the function for the new version and once the new api version is available, myAddon_100014.lua is not found and the version from myAddon.lua is executed instead. It won't suddenly stop working because of a missing file in the future api versions either. Hope this makes it clear.
 
02/24/16, 07:39 AM   #39
merlight
AddOn Author - Click to view addons
Join Date: Jul 2014
Posts: 671
Originally Posted by sirinsidiator View Post
What merlight is referring to is my failure to properly use it in sidWarTools.
Actually I wasn't referring to a particular usage. Having such variable in manifest is inherently broken. Everyone will stop updating their add-ons one day. Why should they all break with the next game update just because a version number increases?

Your suggested "proper" usage shows that the variable is useless. You need to have checks inside both files (edit: okay, redefining functions works, but... ugh), one runs only when API version matches its filename, the other runs only when API version doesn't match the other file's name. So they could just as well be named myAddon_old.lua and myAddon_new.lua. $(APIVersion) is pointless, as long as there are never more than 2 game versions outside.
 
02/24/16, 07:53 AM   #40
Wandamey
Guest
Posts: n/a
you would need 2 files only for a tricky transition (DB rebuilds that sort of things), and return to one file once it's done, but you could wait a bit to see if there are for some bug reports before releasing the "tested" version in that situation.

And using one only file doesn't lessen the usefulness of a multiple APIversion. It's just about the rush, the mistake we make while uploading several files in a row... (you never forgot to change the folder ? ). That would be way more comfortable. Also, releasing early allow other authors to check the compatibility on PTS etc...
 

ESOUI » Developer Discussions » Wish List » [implemented] api version variable in addon manifest

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off