Impaler[WrG] said:
Seems to me their are 3 main ways we change the code
1 - Single line additions such as function definitions on headers, new variables and function calls within existing functions.
2 - New function created from scratch, these ofcorse nessesitate type 1 changes as well
3 - Blocks of alteration in existing function, these may optionaly include calls to new functions but often will not
Agree!
Impaler[WrG] said:
12monkeys can you clarify?
Are the change numbers just references to the Mod or are they counting off each change made in a mod, so for example
<Start MyMod Change #5>
...code...
<End MyMod Change #5>
new line <MyMod Change #6>
Perhapse evern <MyMod Change #6 of 8>
The change-no is just any unique identifier which refers to the remark in the header of the file. This reduces typing, because you don't have to repeat all this A/D/M stuff in each changed line. The unique identifier could be like this:
"12m.001.a"
where:
12m : 12monkeys
001 : mod number. THis mod number should be unique for each developer. Means I someone implements a mod "ABC" this mod gets the number "x". His mod "EFG" gets the number "y". Another developer gets a number 001 for his own mods. So together with the developer the mod number is unique!
a : refers to the subversion of the mod. where "a" is the initial version and anything else is a bug fix or an enhancement.
This allows to search very quickly for mod changes and allows also to identify bugfixes for people who wants to update external code.
In the header there is a simple table where you can enter the details of the changes (last on top!) :
change-no | author | date | remark
-----------------------------------------------------------------
12m.001.b | 12monkeys | 24.04.06 | bug fix for mod ABC in function LMN
12m.001.a | 12monkeys | 20.04.06 | implementation of mod ABC
This system has the advantage that you can very quick identify if a file has been touched/changed or not : you just have to look on the header. But this is not a must, if we have a good working CVS.
The disadvantage is (of course) that you cant indentify in the line where this change belongs to. You have to go to the header for more details.
Impaler[WrG] said:
Type 1 should have a tag containing AUTHOR/DATE/MOD as a minimum
Type 2 should have an additional description at the start of the function
Type 3 should have start and stop tags, both tags should have A/D/M, descriptions should be here or with the type2 function calls depending on ware most of the new logic is implemented, I think the descriptions should always be placed as close to the code which is realy doing the heavy lifting.
to Type 3 : Imporant tohing to add here is, that the original code should alsways be kept as a comment in case you change code!!! This alows other people to rate the changes and to do bugfixing (presupposed the old version did work

.
Not sure if I understood you correct, so sorry when this is what you meant with "descriptions" : For me there is no big advantage of having the A/D/M stuff close to the changed code. Its more important to have some explaining comments why this change has been done.
Impaler[WrG] said:
MODS should be a logical grouping of the bare-minimum nessary to implement a single XML element, behavior or event. We should include a Text file with the dll which lists every Mod, Author and describes the mod and lists every file that the mod can be found on.
Fully agree!
However, change-remarks and commenting of software is both a kind of philosophy as well as naming conventions. I saw a lot of approaches the last years and each method has it advantages and disadvantages. We always find anybody doing something different than what ever we'll decide here, thats for sure.