The on-wiki version of this newsletter can be found here: https://www.wikifunctions.org/wiki/Wikifunctions:Status_updates/2024-05-22 -- New Type: Gregorian calendar months https://www.wikifunctions.org/wiki/File:Wheel-of-life-mother-nature-forrer-french-c1400.jpg*The Wheel of Mother Nature: This is Her Image*, France, ca. 1400 CE. Atop the wheel is Time, her four wings the seasons, with the months as feathers.
We are proud to announce our initial, flagship enumeration Type: Gregorian calendar months https://www.wikifunctions.org/view/en/Z16098.
Gregorian calendar months are an enumeration of twelve values, starting with January https://www.wikifunctions.org/view/en/Z16101 and February https://www.wikifunctions.org/view/en/Z16102 and going all the way to November https://www.wikifunctions.org/view/en/Z16111 and December https://www.wikifunctions.org/view/en/Z16112. For testing purposes, we created two functions for now: "same month https://www.wikifunctions.org/view/en/Z16137", discussed below as the Function of the Week, and "following month https://www.wikifunctions.org/view/en/Z16136", which returns the month that follows the given month.
We are curious to see what kind of functions you will build with that. Unlike with Natural numbers https://www.wikifunctions.org/view/en/Z13518, we don’t expect to see a large number of new functions immediately – but we would be very happy to be surprised! Eventually, Gregorian calendar months will be used as a building block for dates of the Gregorian calendar, increasing the number of functions this type will be used with.
Thanks to the Wikifunctions community for being a great sport! When we created this Type, we merely put a small plea into the English description, asking not to use it yet. And indeed, this wish was mostly respected, which allowed us to fix one more bug before we rolled it out today.
Please let us know if there are problems or wrinkles with using the new Type. We will keep monitoring the situation as best as we can.
We also hope to swiftly add more enumeration Types, particularly for month enumerations for other calendar systems. It would be great if you could write proposals for those https://www.wikifunctions.org/wiki/Wikifunctions:Type_proposals, so that in a few weeks' time we can start creating them. If major issues are not discovered, and any minor issues resolved, we plan to move on with more enumerations, first for calendar months and then for other domains, in as early as two or three weeks.
If you have any questions, please feel free to ask! Thank you for your coöperation and help with this rollout. Recent Changes in the software
Our main work this Quarter is around the eight areas https://www.wikifunctions.org/wiki/Wikifunctions:Status_updates/2024-05-03 we set out earlier. For enumeration support in Types, as mentioned above, we rolled out a fix for the production services, which was about not eagerly evaluating type references in Objects when they're marked as identities in their Type. With this, as discussed above, we hope that the feature work here is complete for the Quarter (T363390 https://phabricator.wikimedia.org/T363390), and have been focussing on the other areas.
Our most visible next set of changes will be improvements to how labels are shown in different languages (T363383 https://phabricator.wikimedia.org/T363383). The first improvement here is that you can now use MediaWiki's fake language code qqx as a view language, which will help you translate Wikifunctions better, by letting you identify Object keys and interface messages; you can see this by visiting view/qqx/Z801 https://wikifunctions.org/view/qqx/Z801 (T359999 https://phabricator.wikimedia.org/T359999).
In other priority areas, we continued our work on streamlining, simplifying, and otherwise improving our browser tests (T349836 https://phabricator.wikimedia.org/T349836) as part of our general testing improvements work (T363389 https://phabricator.wikimedia.org/T363389). We have been adjusting our back-end services' control and information flow to make the work to better report sub-call meta-data possible (T363384 https://phabricator.wikimedia.org/T363384). We have also been examining service performance and management issues within our work to better monitor production (T363387 https://phabricator.wikimedia.org/T363387).
Outside of our priority work, we tweaked the load-order of our front-end code, to avoid occasional race-conditions in our dependencies on MediaWiki. Our production services now run on Node 20, up from Node 18, and have had various minor bug fixes deployed. Our database-accessing code in MediaWiki was made more modern, now using the expression builder abstraction layer in most places (T350993 https://phabricator.wikimedia.org/T350993). Thank you to Umherirrender https://www.wikifunctions.org/wiki/User:Umherirrender for this, and many other improvements for Wikifunctions and the wider Wikimedia ecosystem, over the years.
We tweaked our languages, updating Z1221/nan https://www.wikifunctions.org/view/en/Z1221 to merge in zh-min-nan; our particular thanks to Winston Sung https://www.wikifunctions.org/wiki/User:Winston_Sung for their leading work on cleaning up our language support (T348370 https://phabricator.wikimedia.org/T348370).
We, along with all Wikimedia-deployed code, are now using the latest version of the Codex UX library https://www.mediawiki.org/wiki/Codex, v1.6.0, as of this week. It should have no user-visible changes on Wikifunctions, so please comment on the Project chat or file a Phabricator task if you spot an issue. Call for Functions: Spell out the number!
Last week, we called for you to create functions which spell out numbers https://www.wikifunctions.org/wiki/Wikifunctions:Status_updates/2024-05-15 in different languages, and you have answered. As of now, functions for fifteen languages have been set up: Bengali, Croatian, English, French, German, Igbo, Klingon, Low German, Malay, Moroccan Arabic, Polish, Ukrainian, Standard Arabic, Swedish, and Láadan.
A page for this project https://www.wikifunctions.org/wiki/Wikifunctions:Cardinal_numbers has been started, and we are looking forward to seeing the project develop. If you need any help, feel free to ask! Wikifunctions on Beta Cluster broken
For the last week or two, Wikifunctions on Beta Cluster has been failing. We are investigating, but are a bit of a loss of what the issue is. We currently have no prediction when this will be fixed. Function of the Week: Same month
Since we just introduced a new Type, Gregorian calendar month https://www.wikifunctions.org/view/en/Z16098, we also created two functions. One very useful function for every new Type is the identity function, which checks whether two given values are the same. We named the function "same month https://www.wikifunctions.org/view/en/Z16137".
It takes as input two arguments of our new Type for Gregorian calendar months, and returns a Boolean https://www.wikifunctions.org/view/en/Z40 value: true https://www.wikifunctions.org/view/en/Z41, if the two months are the same, and false https://www.wikifunctions.org/view/en/Z42 otherwise.
The identity function is the most basic function for all enumerations, and it allows checking for the value of the enumeration. We can see it in action in the composition for "following month" https://www.wikifunctions.org/view/en/Z16148, using eleven ifs https://www.wikifunctions.org/view/en/Z802 sequentially, checking the argument against all possible values and then returning the appropriate answer (that particular implementation times out currently, though, an issue we are working on).
For "same month", we created six tests (out of a possible 144 tests, which would be a bit excessive). We created three pairs of text, each pair with a test that should return true, and one that should return false. The three pairs in turn are once using the month as a literal, once as a reference, and once a mixed function call:
1. Checking that two literals are the same https://www.wikifunctions.org/view/en/Z16138 2. Checking that two literals are different https://www.wikifunctions.org/view/en/Z16139 3. Checking that two references are the same https://www.wikifunctions.org/view/en/Z16140 4. Checking that two references are different https://www.wikifunctions.org/view/en/Z16141 5. Checking that a literal and a reference are the same https://www.wikifunctions.org/view/en/Z16228 6. Checking that a literal and a reference are different https://www.wikifunctions.org/view/en/Z16229
There are two implementations for the function, one in Python https://www.wikifunctions.org/view/en/Z16143 and one in JavaScript https://www.wikifunctions.org/view/en/Z16142. And although both of them look very different – they use the identity operator of the given language to compare the two values – they work quite a bit differently for the two languages: in both languages, the incoming value is translated to a number, but, following the standard libraries of both languages, in Python January is represented by a 1, whereas in JavaScript January is represented by a 0.
abstract-wikipedia@lists.wikimedia.org