The on-wiki version of this newsletter can be found here: https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2022-08-09 -- We are pleased to invite you all to the Wikifunctions Beta https://wikifunctions.beta.wmflabs.org/wiki/Wikifunctions:Main_Page!
We have been planning to set up a Wikifunctions Beta for a long time, but we felt that our prototype was not yet stable enough for a public Beta. With a concerted effort, our engineers together with the Google.org fellows have pushed to get the system to a stage that works well enough to warrant a Beta release. So, without further ado, you can visit the Beta of Wikifunctions at wikifunctions.beta.wmflabs.org/wiki/Wikifunctions:Main_Page .
*Thank you, Lucas!* We are thankful to Lucas Werkmeister https://meta.wikimedia.org/wiki/User:Lucas_Werkmeister, who has been running the test NotWikilambda https://notwikilambda.toolforge.org/wiki/Not_Wikilambda:Main_Page instance the whole time. Lucas has done an immeasurable service to the community, and to the development team, by setting up a public instance of WikiLambda early on, which allowed many to get an early feeling for our prototype. Lucas’s service will always have a very special place in the history of Wikifunctions, and not only because of NotWikilambda. We understand that NotWikilambda is now going to be discontinued, having served us well. Lucas is a living example of the best in our community.
*What is Wikifunctions?* Wikifunctions will be a new top-level project of the Wikimedia Foundation, which we are currently developing. Wikifunctions will be a place for everyone to collaboratively create and maintain a library of code functions. The goal of Wikifunctions is to support the Wikimedia projects and beyond, and to allow everyone to call and re-use functions in the world's natural and programming languages. That is our mission statement https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2021-04-08. Many of the core functionalities should be available for you right now.
Beta runs the newest version of the code, usually just a few minutes behind development merges. This is also true for both the "WikiLambda" MediaWiki code, and the orchestrator and evaluator back-end services, which execute function calls for the users.
Note: All content in Beta may be deleted at any time, so don’t rely on Beta having persistent content.
*What works?* What should you be able to do on the Wikifunctions Beta right now? You should be able to
- Call functions and see the results of those function calls - Create new and edit existing functions - Create and edit implementations, in JavaScript or Python, and through composition of other functions - Create and edit testers - Connect testers and implementations with the functions - Create and edit types - Create and edit instances of types - Create functions for the user-defined types
All of these should work on any modern device, whether mobile or desktop, and in different natural languages.
One thing that is currently a bit incomplete, and that will be improved, is the workflow to create implementations in code for functions that are taking or returning user-defined types. It is possible, but it might be a bit difficult to write. We want to rewrite that part.
*What does not work?* Many things don’t work yet. Creating an implementation or a tester is best done by creating a new object, and then selecting “Implementation” or “Tester” as the type, and then selecting the respective function. For connecting them, you would need to use the “Fallback editor” that is visible once you are in edit mode on a function. Other big missing pieces:
- Search. Currently, your best bet to find what’s already on the wiki and to look through the existing pages is not by using the search, but through the list of objects https://wikifunctions.beta.wmflabs.org/wiki/Special:ListZObjectsByType. The most useful lists here will likely be the list of functions https://wikifunctions.beta.wmflabs.org/wiki/Special:ListZObjectsByType/Z8 and the list of types https://wikifunctions.beta.wmflabs.org/wiki/Special:ListZObjectsByType/Z4 . - Language settings are not sticky. By adding the uselang parameter to a URL you can see how a page looks in a different language, but once you navigate to another page, the setting gets lost again. Log in to set your display language to change it for good. - User rights. This means that you can currently edit things that you shouldn’t be able to. This means you can do edits which will break things badly. Please don’t edit the core data model, or do things like add a third Boolean value. - Documentation. The place where we store documentation alongside each Function etc. is not implemented yet. For now, as a work around, you can add documentation on the respective Talk pages.
Besides these larger missing pieces, many smaller pieces are not right yet. There's no recording of what functions are used, and so no listing of popular functions. There's no documentation welcoming people to Wikifunctions, or helping them know how to use the system. There's no system to display the diff of an edit to a function. There are no maintenance reports helping the community find functions that need fixing, translating, or expanding. Feel free to report things that you're missing, even though we are aware of many of those. We hope to make future improvements much more tangible and visible from now on. We also wrote a tutorial on using the Wikifunctions Beta https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Beta_tutorial, noting several current caveats and workarounds.
*Report issues and ideas.* What to do if you run into an issue or if you have an idea for an improvement: either file a task https://phabricator.wikimedia.org/maniphest/task/edit/form/43/?tags=WikiLambda,Abstract_wikipedia, or check if there is a task and file one if not. You can also chat with us on IRC #wikipedia-abstractconnect https://web.libera.chat/?channel=#wikipedia-abstract or Telegram group https://t.me/Wikifunctions, or on the Meta-wiki talk page https://meta.wikimedia.org/wiki/Talk:Abstract_Wikipedia. We’ll try to bring all tasks and ideas together on the Phabricator board https://phabricator.wikimedia.org/project/view/4876/. We do not promise to get to any of the bugs and ideas swiftly.
*Contribute code.* If you want to contribute to the code, that would be more than welcome. There are so many clean-up tasks to be done, and now with the Beta, these clean-ups and their effects should be much more visible than before. Your code contributions will be very welcome. Either find something you want to improve by using the Beta, or select one of our tasks marked as fix-it https://phabricator.wikimedia.org/maniphest/?project=PHID-PROJ-2d3tcr43q2ipyqdw3e4m&statuses=open()&group=none&order=newest#R. These should be comparably easy and self-contained tasks. Workstream updates (as of August 5, 2022)
Performance:
- Continued analyzing and fixing the performance slowness - Ali Assaf wrote a document describing generic vs pre-generic function types https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Generic_function_type. We mentioned this document in the latest weekly newsletter and asked for the community feedback
NLG:
- Finalized the design document https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Template_Language_for_Wikifunctions describing the template language - Drafted initial proposal of the Abstract Representation
Meta-data:
- Refined CPU & memory reporting for Python & JavaScript execution processes - Resolved remaining error condition in tester pipeline - Finished JavaScript code to deconstruct tester pipeline results and completed wiring tester pipeline results into Vuex
Experience:
- Fixed Beta launch blocker when no arguments were shown on an implementation - Fixed wrong titles in non-function pages - [DESIGN] Handed off Table component designs
Great news Denny and team. When is the expectation that Search will be working? This year?
Thad https://www.linkedin.com/in/thadguidry/ https://calendly.com/thadguidry/
On Tue, Aug 9, 2022 at 10:56 AM Denny Vrandečić dvrandecic@wikimedia.org wrote:
The on-wiki version of this newsletter can be found here: https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2022-08-09 -- We are pleased to invite you all to the Wikifunctions Beta https://wikifunctions.beta.wmflabs.org/wiki/Wikifunctions:Main_Page!
We have been planning to set up a Wikifunctions Beta for a long time, but we felt that our prototype was not yet stable enough for a public Beta. With a concerted effort, our engineers together with the Google.org fellows have pushed to get the system to a stage that works well enough to warrant a Beta release. So, without further ado, you can visit the Beta of Wikifunctions at wikifunctions.beta.wmflabs.org/wiki/Wikifunctions:Main_Page.
*Thank you, Lucas!* We are thankful to Lucas Werkmeister https://meta.wikimedia.org/wiki/User:Lucas_Werkmeister, who has been running the test NotWikilambda https://notwikilambda.toolforge.org/wiki/Not_Wikilambda:Main_Page instance the whole time. Lucas has done an immeasurable service to the community, and to the development team, by setting up a public instance of WikiLambda early on, which allowed many to get an early feeling for our prototype. Lucas’s service will always have a very special place in the history of Wikifunctions, and not only because of NotWikilambda. We understand that NotWikilambda is now going to be discontinued, having served us well. Lucas is a living example of the best in our community.
*What is Wikifunctions?* Wikifunctions will be a new top-level project of the Wikimedia Foundation, which we are currently developing. Wikifunctions will be a place for everyone to collaboratively create and maintain a library of code functions. The goal of Wikifunctions is to support the Wikimedia projects and beyond, and to allow everyone to call and re-use functions in the world's natural and programming languages. That is our mission statement https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Updates/2021-04-08. Many of the core functionalities should be available for you right now.
Beta runs the newest version of the code, usually just a few minutes behind development merges. This is also true for both the "WikiLambda" MediaWiki code, and the orchestrator and evaluator back-end services, which execute function calls for the users.
Note: All content in Beta may be deleted at any time, so don’t rely on Beta having persistent content.
*What works?* What should you be able to do on the Wikifunctions Beta right now? You should be able to
- Call functions and see the results of those function calls
- Create new and edit existing functions
- Create and edit implementations, in JavaScript or Python, and
through composition of other functions
- Create and edit testers
- Connect testers and implementations with the functions
- Create and edit types
- Create and edit instances of types
- Create functions for the user-defined types
All of these should work on any modern device, whether mobile or desktop, and in different natural languages.
One thing that is currently a bit incomplete, and that will be improved, is the workflow to create implementations in code for functions that are taking or returning user-defined types. It is possible, but it might be a bit difficult to write. We want to rewrite that part.
*What does not work?* Many things don’t work yet. Creating an implementation or a tester is best done by creating a new object, and then selecting “Implementation” or “Tester” as the type, and then selecting the respective function. For connecting them, you would need to use the “Fallback editor” that is visible once you are in edit mode on a function. Other big missing pieces:
- Search. Currently, your best bet to find what’s already on the wiki
and to look through the existing pages is not by using the search, but through the list of objects https://wikifunctions.beta.wmflabs.org/wiki/Special:ListZObjectsByType. The most useful lists here will likely be the list of functions https://wikifunctions.beta.wmflabs.org/wiki/Special:ListZObjectsByType/Z8 and the list of types https://wikifunctions.beta.wmflabs.org/wiki/Special:ListZObjectsByType/Z4 .
- Language settings are not sticky. By adding the uselang parameter to
a URL you can see how a page looks in a different language, but once you navigate to another page, the setting gets lost again. Log in to set your display language to change it for good.
- User rights. This means that you can currently edit things that you
shouldn’t be able to. This means you can do edits which will break things badly. Please don’t edit the core data model, or do things like add a third Boolean value.
- Documentation. The place where we store documentation alongside each
Function etc. is not implemented yet. For now, as a work around, you can add documentation on the respective Talk pages.
Besides these larger missing pieces, many smaller pieces are not right yet. There's no recording of what functions are used, and so no listing of popular functions. There's no documentation welcoming people to Wikifunctions, or helping them know how to use the system. There's no system to display the diff of an edit to a function. There are no maintenance reports helping the community find functions that need fixing, translating, or expanding. Feel free to report things that you're missing, even though we are aware of many of those. We hope to make future improvements much more tangible and visible from now on. We also wrote a tutorial on using the Wikifunctions Beta https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Beta_tutorial, noting several current caveats and workarounds.
*Report issues and ideas.* What to do if you run into an issue or if you have an idea for an improvement: either file a task https://phabricator.wikimedia.org/maniphest/task/edit/form/43/?tags=WikiLambda,Abstract_wikipedia, or check if there is a task and file one if not. You can also chat with us on IRC #wikipedia-abstractconnect https://web.libera.chat/?channel=#wikipedia-abstract or Telegram group https://t.me/Wikifunctions, or on the Meta-wiki talk page https://meta.wikimedia.org/wiki/Talk:Abstract_Wikipedia. We’ll try to bring all tasks and ideas together on the Phabricator board https://phabricator.wikimedia.org/project/view/4876/. We do not promise to get to any of the bugs and ideas swiftly.
*Contribute code.* If you want to contribute to the code, that would be more than welcome. There are so many clean-up tasks to be done, and now with the Beta, these clean-ups and their effects should be much more visible than before. Your code contributions will be very welcome. Either find something you want to improve by using the Beta, or select one of our tasks marked as fix-it https://phabricator.wikimedia.org/maniphest/?project=PHID-PROJ-2d3tcr43q2ipyqdw3e4m&statuses=open()&group=none&order=newest#R. These should be comparably easy and self-contained tasks. Workstream updates (as of August 5, 2022)
Performance:
- Continued analyzing and fixing the performance slowness
- Ali Assaf wrote a document describing generic vs pre-generic
function types https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Generic_function_type. We mentioned this document in the latest weekly newsletter and asked for the community feedback
NLG:
- Finalized the design document
https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Template_Language_for_Wikifunctions describing the template language
- Drafted initial proposal of the Abstract Representation
Meta-data:
- Refined CPU & memory reporting for Python & JavaScript execution
processes
- Resolved remaining error condition in tester pipeline
- Finished JavaScript code to deconstruct tester pipeline results and
completed wiring tester pipeline results into Vuex
Experience:
- Fixed Beta launch blocker when no arguments were shown on an
implementation
- Fixed wrong titles in non-function pages
- [DESIGN] Handed off Table component designs
Abstract-Wikipedia mailing list -- abstract-wikipedia@lists.wikimedia.org List information: https://lists.wikimedia.org/postorius/lists/abstract-wikipedia.lists.wikimed...
abstract-wikipedia@lists.wikimedia.org