[kepler-dev] Meeting about .kepler and related issues

Chad Berkley berkley at nceas.ucsb.edu
Wed Jun 3 10:44:30 PDT 2009


works for me.

David Welker wrote:
> Matt, Tim, Chad, Aaron and other interested parties:
> 
> Would you be available to meet on Thursday at 2 pm to discuss the issues 
> identified below?
> 
> David
>>
>> Feel free to set up a meeting.
>>
>> David Welker wrote:
>>> A couple of points:
>>>
>>> (1) The question of whether what support we are going to have for 
>>> multiple installations of Kepler versus having one installation of 
>>> Kepler that is configurable has yet to be fully developed via 
>>> discussion. Your design assumes that we are supporting multiple 
>>> installations of Kepler on the same machine and that each of these 
>>> multiple installations have their own cache. Those are all reasonable 
>>> ideas, but these ideas have yet to be discussed and agreed upon by 
>>> Kepler management or the various development teams. This is not a 
>>> minor implementation decision, and it has implications that need to 
>>> be discussed.
>>>
>>> (2) The implications of the fact that Kepler could be installed in a 
>>> read-only area are far reaching. It certainly affects the build 
>>> system. Right now, modules.txt in the build-area is regularly 
>>> rewritten with every issuance of the change-to command. But, what if 
>>> Kepler is installed in a read-only area? It sounds like in that case, 
>>> we are going to have to think about what we can do if modules.txt 
>>> cannot be written. Like, for example, having a version of modules.txt 
>>> in the .kepler directory that is read from for example. So, this is 
>>> definitely not unrelated to the general work you are doing with 
>>> .kepler right now. Also, we need to think about where kars are build. 
>>> Originally, kars were built in the common module. Then, they were 
>>> built in the kepler.modules directory. Then, they were build in the 
>>> module where the came from. However, if Kepler is installed in a 
>>> read-only locations, none of these solutions for where kars are built 
>>> would be acceptable. We would probably want to build kars in the 
>>> .kepler or similar directory in the user directory.
>>>
>>> (3) There are also implications here for the configuration system. In 
>>> general, the system default configurations could be in a read-only 
>>> area. Therefore, user changes to configuration need to be stored in a 
>>> different location than the original configuration files, which would 
>>> contain default configuration options.
>>>
>>> (4) For development purposes, I do not think we need to support 
>>> caches for multiple installations of Kepler. However, for your 
>>> testing purposes, it would be acceptable to have the build system 
>>> generate these sorts of files, just as the installer would. But, 
>>> before that, we need to think about what sort of support we are going 
>>> to provide for multiple installations of Kepler and only then go 
>>> forward with an implementation or strategy.
>>>
>>> (5) Kepler itself should not try to write files that in the normal 
>>> course of events should be written by the installer only. Instead, 
>>> the system should have a sensible default behavior that it utilizes 
>>> when such files are absent.
>>>
>>> (6) If you delete "only one file" in an installation of Kepler or any 
>>> other software, there is a good chance that this will in fact mess up 
>>> the software. Of course, the more robust we can make the system, the 
>>> better. However, there is no reason to think that people will be 
>>> likely to delete this file. Especially if it is written to a less 
>>> visible location in a subdirectory of the build-area folder. Of 
>>> course, I must admit that when I see a file like this in 
>>> kepler.modules, I am in fact tempted to delete it because it doesn't 
>>> feel like it belongs there.
>>>
>>> (7) In general, we should avoid storing non module files in 
>>> kepler.modules to reduce the probability of name clashes.
>>>
>>> (8) Also, if the purpose of the class is to uniquely identify a 
>>> particular installation of Kepler, I think a better name than 
>>> InstanceAuthNamespace should be selected. It is not at all clear from 
>>> the file names what the function of this file is -- although one gets 
>>> a sense of how it does whatever it does do (i.e. with namespaces). I 
>>> think in general, it would be better to select file names thinking 
>>> about "what" rather than "how," especially as implementations are 
>>> liable to change in the future.
>>>
>>> Anyway, I think we need to have a discussion about these issues that 
>>> includes Tim and Matt and other interested parties at a minimum, and 
>>> not just you, me, and Chad. We really need to think about the 
>>> implications of these decisions before moving forward.
>>>
>>> David
>>>
>>>>
>>>> I think it's ok to have that file in the project root, alongside all 
>>>> of the read-only module jars, the installer could initially generate 
>>>> the file, but we still need the runtime mechanism for development 
>>>> purposes.  It also increases the reliability quite a bit, imagine if 
>>>> I had to rerun my installer just because I deleted that one file...
>>>>
>>>> Aaron
>>>>
>>>>
>>>> David Welker wrote:
>>>>> If you are going to have a file that uniquely identifies an 
>>>>> installation and that file is going to be written to kepler.modules 
>>>>> (I think a better location would be in a subfolder of the 
>>>>> build-area folder where it not likely to be seen very often), then 
>>>>> it must be written by the installer and not by any other process. 
>>>>> In general, Kepler is likely to be installed in a read-only area of 
>>>>> disk, so such a file must be generated only once at installation time.
>>>>>
>>>>> David
>>>>>>
>>>>>> I thought that would work (and actually moved it there yesterday) 
>>>>>> but the problem arises that if you have two different 
>>>>>> installations of Kepler on the same machine they both end up using 
>>>>>> the .kepler/InstanceAuthNamespace file and therefore the same 
>>>>>> cache.  Now this may be what you want but may not be what you 
>>>>>> want.  Say I have a kepler base configuration installation and a 
>>>>>> Kepler WRP installation, there are cases where I may want them to 
>>>>>> use the same cache or I may not want to use the same cache.  If 
>>>>>> the InstanceAuthNamespace is in .kepler then they both MUST use 
>>>>>> the same cache.  If the InstanceAuthNamespace file is stored at 
>>>>>> the project root then they can both use different caches or they 
>>>>>> can both use the same cache (by copying the InstanceAuthNamespace 
>>>>>> file to both project root directories).
>>>>>>
>>>>>> Aaron
>>>>>>
>>>>>> Chad Berkley wrote:
>>>>>>> Could it go in the root of the .kepler directory so the system 
>>>>>>> will know where to find it?  Or maybe in some 'common' directory 
>>>>>>> in .kepler that doesn't rely on the unique id system?
>>>>>>>
>>>>>>> chad
>>>>>>>
>>>>>>>
>>>>>>> Aaron Schultz wrote:
>>>>>>>>
>>>>>>>> Hi Chad,
>>>>>>>>
>>>>>>>> The InstanceAuthNamespace file contains a java serialized string 
>>>>>>>> for the unique authority and namespace of any given kepler 
>>>>>>>> installation (which is either retrieved from a webservice or 
>>>>>>>> assigned via UUID).
>>>>>>>>
>>>>>>>> For each installation of kepler on a given machine there would 
>>>>>>>> be (actually there now is) a subdirectory in the .kepler 
>>>>>>>> directory that was named using the authority and namespace.
>>>>>>>> Each of these .kepler/instance directories would contain it's 
>>>>>>>> own cache as we discussed yesterday....
>>>>>>>>
>>>>>>>> So we need that one file to find all the other files for any 
>>>>>>>> given installation of kepler...
>>>>>>>>
>>>>>>>> Aaron
>>>>>>>>
>>>>>>>> Chad Berkley wrote:
>>>>>>>>> Hi Aaron,
>>>>>>>>>
>>>>>>>>> I've been seeing this file appear and wondering what it was.  I 
>>>>>>>>> think things like this should be written to .kepler or some 
>>>>>>>>> other user directory.  I agree with David that the kepler 
>>>>>>>>> project directory should probably not be written to in 
>>>>>>>>> general.  Maybe this type of file should be written to the 
>>>>>>>>> cache so that it could be programatically purged if and when it 
>>>>>>>>> needs to be.
>>>>>>>>>
>>>>>>>>> thanks,
>>>>>>>>> chad
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> David Welker wrote:
>>>>>>>>>> Hi Aaron,
>>>>>>>>>>
>>>>>>>>>> In general, you need to avoid writing anything to the 
>>>>>>>>>> kepler.modules project root directory. In the general case, 
>>>>>>>>>> this directory is likely to be stored in a read-only area of 
>>>>>>>>>> disk.
>>>>>>>>>>
>>>>>>>>>> David
>>>>>>>>>>>
>>>>>>>>>>> You will want to delete the InstanceAuthNamespace file in 
>>>>>>>>>>> your project root directory.
>>>>>>>>>>>
>>>>>>>>>>> Otherwise you will have troubles getting proper object ids 
>>>>>>>>>>> for LSIDs.
>>>>>>>>>>>
>>>>>>>>>>> Aaron
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Kepler-dev mailing list
>>>>>>>>>>> Kepler-dev at kepler-project.org
>>>>>>>>>>> http://mercury.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-dev
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Kepler-dev mailing list
>>>>>>>>>> Kepler-dev at kepler-project.org
>>>>>>>>>> http://mercury.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-dev
>>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
> 
> _______________________________________________
> Kepler-dev mailing list
> Kepler-dev at kepler-project.org
> http://mercury.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-dev
> 


More information about the Kepler-dev mailing list