S
Stefan Ram
I will describe a problem and my solution. I wonder how others
are doing this.
Problem:
One wants to publish source code, but does not know whether
the source code might contain confidential parts.
Solution:
One does a code review, and if the code is not found to
contain confidential parts, it gets a "clearance stamp":
@de.dclj.ram.meta.description.Cleared()
public interface ComparableLocatableTuple { ... }
Problem:
After the clearance was granted, the code might be edited and
the edit session might introduce confidential notes into the
code, again. The clearance stamp then will be misleading.
Solution:
The clearance stamp gets a date and time:
@de.dclj.ram.meta.description.Cleared("slr@2006-01-31T19:14:50+01:00")
public interface ComparableLocatableTuple { ... }
Now the publishing process will compare the time of the last
modification of the file with the clearance stamp. If the
last modification occured later than the clearance (plus
a tolerance of some seconds), the clearance will be considered
invalid. Files with invalid clearances will need a new
review to be possibly re-granted clearance.
Extended Solution:
The review might annotate the type by code qualities such as
documentation:
@de.dclj.ram.meta.description.Cleared("slr@2006-01-31T19:14:50+01:00")
@de.dclj.ram.meta.quality.Documented()
public interface ComparableLocatableTuple { ... }
This means that the type declaration was sufficiently
documented at the time of the review.
Using this annotation, code which is not sufficiently
documented can be found more easily in the source tree as a
candidate for documentation sessions.
If the file is modifid (code is added or modified) not only
will the clearance become invalid but also the "Documented"
stamp. (When one is in a hurry to extend features or remove a
bug, one does not always take time and care to update the
documentation immediatly.) So, the next code review also would
have to decide whether the type declaration still is
considered sufficiently documented.
If not, the "Documented" stamp will be removed and the
declaration then again is a candidate for a documentation
session.
In a similar manner other code qualities might be handled,
such as "Tested".
This whole effort will allow to:
- make sure that only code is published that has
a certain number of qualities (such as non-
confidential or documented)
- easily find those type declarations that lack certain
qualities as candidates for edit sessions to
improve them.
are doing this.
Problem:
One wants to publish source code, but does not know whether
the source code might contain confidential parts.
Solution:
One does a code review, and if the code is not found to
contain confidential parts, it gets a "clearance stamp":
@de.dclj.ram.meta.description.Cleared()
public interface ComparableLocatableTuple { ... }
Problem:
After the clearance was granted, the code might be edited and
the edit session might introduce confidential notes into the
code, again. The clearance stamp then will be misleading.
Solution:
The clearance stamp gets a date and time:
@de.dclj.ram.meta.description.Cleared("slr@2006-01-31T19:14:50+01:00")
public interface ComparableLocatableTuple { ... }
Now the publishing process will compare the time of the last
modification of the file with the clearance stamp. If the
last modification occured later than the clearance (plus
a tolerance of some seconds), the clearance will be considered
invalid. Files with invalid clearances will need a new
review to be possibly re-granted clearance.
Extended Solution:
The review might annotate the type by code qualities such as
documentation:
@de.dclj.ram.meta.description.Cleared("slr@2006-01-31T19:14:50+01:00")
@de.dclj.ram.meta.quality.Documented()
public interface ComparableLocatableTuple { ... }
This means that the type declaration was sufficiently
documented at the time of the review.
Using this annotation, code which is not sufficiently
documented can be found more easily in the source tree as a
candidate for documentation sessions.
If the file is modifid (code is added or modified) not only
will the clearance become invalid but also the "Documented"
stamp. (When one is in a hurry to extend features or remove a
bug, one does not always take time and care to update the
documentation immediatly.) So, the next code review also would
have to decide whether the type declaration still is
considered sufficiently documented.
If not, the "Documented" stamp will be removed and the
declaration then again is a candidate for a documentation
session.
In a similar manner other code qualities might be handled,
such as "Tested".
This whole effort will allow to:
- make sure that only code is published that has
a certain number of qualities (such as non-
confidential or documented)
- easily find those type declarations that lack certain
qualities as candidates for edit sessions to
improve them.