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

David Welker david.v.welker at gmail.com
Tue Jun 2 16:52:54 PDT 2009


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
>>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>
>



More information about the Kepler-dev mailing list