[Mono-devel-list] Adding common MonoFileVersion.cs and MonoAssemblyInfo.cs

Kornél Pál kornelpal at hotmail.com
Sat Jun 18 10:02:17 EDT 2005


Hi,

1. Concepts of this patch:

The diff file is for configure.in to generate MonoFileVersion.cs as well.
This is intended to be used by assemblies that have standardized version
numbers for compatibility.

I did not attached a MonoAssemblyInfo.cs but it should contain common
constant (not generated) attributes for all the assemblies of Mono. For
example AssemblyCompany, AssemblyProduct, AssemblyCopyright,
AssemblyTrademark, NeutralResourcesLanguage.

Attributes specific to each assembly should remain in the AssemblyInfo.cs of
the assembly.

As the first step these files should be added and later all the assemblies
should be revised to remove unnecessary or redundant (in common files )
attributes and modify outdated attributes.

2. Assembly specific attributes for all the assemblies:

All the attributes required and used by the CLI should be retained.
For example: AssemblyDefaultAlias, AssemblyDelaySign, AssemblyKeyFile

Should use the following informational attributes:
AssemblyTitle, AssemblyDescription, AssemblyCompany, AssemblyProduct,
AssemblyCopyright

Should not use the following attributes as I think they are useless:
AssemblyConfiguration, AssemblyTrademark, AssemblyInformationalVersion

3. For people who don't like using version numbers:

Of course they can be used to determine whether a workaround is necessary
for a specific bug instead of reporting the bug or fixing it in the source
of Mono but those people who like doing this can use any other
characterisitcs (size, hash, reflection for internal types, attributes...)
to determine the version of an assembly.

So I think we shouldn't drop using version numbers just to make life of
stupid people harder while making our life impossible.

4. For people who don't like to use attributes with Mono specific values
that are used in MS.NET as well:

AssemblyFileVersion is intended for informational purposes (and Windows uses
it to determine which file is newer) so it's OK to use it to store the
version number of Mono. AssemblyVersion is intended to be used for
versioning. If someone uses AssemblyFileVersion instead of AssemblyVersion
it's his problem.

For example we do not add AssemblyCopyrightAttribute("Copyright (C)
Microsoft Corp. 2000-2002") to our assemlies altough Microsoft does it.:)

Kornél
-------------- next part --------------
A non-text attachment was scrubbed...
Name: configure.in.diff
Type: application/octet-stream
Size: 524 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20050618/8d7144aa/attachment.obj 


More information about the Mono-devel-list mailing list