First Joel and Jonathan, thank you for the edits - always good to get a few more eyes on things
Just so we’re clear, I believe when you upload a file ending in .vmod
, the internal version number is checked against the release to which it is uploaded - see line 328 of prod_core.rs
, so I believe the main text above is correct (module version is checked).
What is not clear to me, is if the full version - including <prerelease>
and <build>
is compared, or only the <major>.<minor>.<patch>
parts are compared.
It is true, as you can see from the above cited code, that only .vmod
files are checked, but I sincerely hope that in the not too distant future that other Vassal files will also be checked.
BTW, I still think you should amend the code so that you check the file content to see if it is a Vassal file, and if so, compare the versions - see this post.
Also
which I agree with, but I think it is important to give a comprehensive overview. But as I suggested, I think editing the .svelte
files on the front-end to give users the information there and then can help a lot
Oh, and in line 371 of
GameSection
perhaps add the paragraph<p> Game box images can be PNG, GIF, JPEG, SVG, AVIF, or WEBP. Images shold be no bigger than 200px × 200px, to not take up too much space on the page. </p>
For example, in line 147 of PackageSection, you could add
<p>Release numbers <i>must</i> follow the conventions of <a href="https://semver.org">Semantic Versioning</a> - i.e., be of the form <i>Major</i>.<i>Minor</i>.<i>Patch</i> (and optional pre-release or build information attached), where <i>Major</i>. <i>Minor</i>, and <i>Patch</i> are whole, non-negative, numbers. </p> <p> Examples of valid release versions are </p> <pre> 1.2.3 10.20.30-alpha 6.4.0-rc1 5.3.8+french </pre>
And in line 91 of PackagesSection, you add
<p>Package names are free-form strings, and structures the project into sub-parts. A typical package name would be <code>Module</code></p>
And in line 123 of NewProjectPage something a la
<p>Project names consist solely of the letters <code>a,b,...,z</code>, <code>A,B,...,Z</code>, digits <code>0,1,...,9</code>, dashes and underscores <code>-_</code>, and can be no longer than 64 characters. Note that the project name <i>must</i> start with a letter and <i>cannot</i> contain spaces, punctuation, or other special characters. <p>Examples of good project names are <pre> ... </pre>
And, of course, in line 177 of ReleaseSection
{#if !uploading} <p> Remember that the version number of the module set <i>inside</i> the module <i>must</i> be a valid <a href="https://semver.org">Semantic Version</a>, e.g., <code>1.2.3</code>. The file name <i>should</i> contain the version number too, but is not required to. Also file name of should preferably not contain spaces, punctuation, or special characters other than those in the version number, and as allowed by <a href="https://semver.org">Semantic Version</a> format. </p> <p> To set the version number in the module, open the module in the editor and double click the top-level element. </p> {/if}
I think such hints right in the interface can really help people a lot, and it is an easy fix that can quickly be added to the front-end code.
Oh, and
I cannot see from your edits where there were any mistakes or errors - rather your edits was change of formulations of spelling errors.
Also, why did you remove the stuff about when to change version numbers? I am fairly certain that people are confused about that, and I think it would be quite helpful - in particular because you enforce semver so heavily, to give people some idea of how to handle that. Saying you “leave it up to the module developers” is a cop-out, because then you should not enforce any versioning what so ever. There are clearly expectations that you would like to see followed, and I think they should be spelled out. If you do not, you will eventually create more work for yourself.
Yours,
Christian