Hi Maciej!

Replying inline

On Mon, Oct 23, 2023 at 9:03 PM Maciej Jaros <egil@wp.pl> wrote:
Hi

Build tool sounds like an interesting idea. What is the intended use case here?
  1. Using for complex tools that might require complex or too specific tools on the server side?
  2. Using for small tools that has some build steps which produce static files? (aka serverless server)
 Both, to some extent, though it's main aim is to simplify the build process altogether.

It enables you to not have to manually build you tool, and still use the high level package managers of your language of choice (pip/golang/bundle/npm/...).
For some complex tools, you can also use the package manager (using the Aptfile file, ubuntu based base image), though it might not be suitable for very complex tools that might need a different kind of dependencies installed.

For tools that generate static files, there's some options:

* Use buildservice to build
https://wikitech.wikimedia.org/wiki/Help:Toolforge/Web#Serving_static_files
 
An example for the serverless tool (2).
Can I... Or, to be more exact... Should I eventually move that tool to a build service?

Essentially, what I'm asking is whether building a tool with this service is a small or large burden? Is it a small enough burden to use even with very small tools?"

Definitely yes, you can use it to build very small tools, for us, it's simpler to maintain tools based on the buildservice than grid ones or basic webservice ones. Feel free to open a task if you find any issues or get stuck, there's still some flows that we have not figured out, but we are eager to help people get things done :)

Serving static files might be a good use case too, so we might create a tutorial out of it.


Regards,
Maciej Nux.

Seyram Komla Sapaty (2023-10-18 16:16):

Hello,


The Toolforge admin team is happy to announce that the Toolforge Build Service[0] is now available in open beta.

The Build Service is intended to allow more tools to migrate off the Grid Engine and to make the process for deploying code to

Toolforge easier and more flexible, by building container images with the specific dependencies for each tool.

Here are quick highlights of some of the current key features:

1. Build your tool from source code, using you language's dependency management tool, no dockerfiles, no scripts, no manual steps

2. Use industry-wide standards[1] no vendor lock-in by using upstream buildpacks

3. Support for many languages out of the box[2]

4. Envvars - Create and manage environment variables and secrets that are available at runtime.[3]

5. Ability to install packages from the Ubuntu repositories[4]

6. Improved resiliency and resource usage by allowing NFS-less webservices[5], if you don't need NFS

7. Test your image locally, or anywhere[6]

Please review the current known limitations here[7]

We also have a growing list of tutorials for various languages[8]


During this open beta, we invite you to actively participate and share your feedback replying to this thread or through irc, and if you

find any issues or have any feature suggestions, you can use this task template[9]. 


Your insights will help us enhance and tailor the Build Service to meet the needs of your tools.


The plan is to have this phase run for the next months, and if no big issues are found, promote it to global availability phase 1 (GA1)

while we work on adding automatic triggering and deployment, for which we will do a second round of beta testing for those specific features.


This unblocks the last step to migrate out of the grid, so we request all grid users to give it a try and report any issues they might find,

there's no big changes expected for the currently implemented features, so any work done now will help later.


Thank you for being a part of this journey. We look forward to your invaluable feedback and collaboration as we strive to provide a better developer experience.



[0]: https://wikitech.wikimedia.org/wiki/Help:Toolforge/Build_Service

[1]:  https://buildpacks.io/

[2]: https://wikitech.wikimedia.org/wiki/Help:Toolforge/Build_Service#Supported_languages
[3]:https://wikitech.wikimedia.org/wiki/Help:Toolforge/Envvars_Service

[4]: https://wikitech.wikimedia.org/wiki/Help:Toolforge/Build_Service#Installing_Apt_packages
[5]: https://wikitech.wikimedia.org/wiki/Help:Toolforge/Build_Service#Using_NFS_shared_storage

[6]: https://wikitech.wikimedia.org/wiki/Help:Toolforge/Build_Service#Testing_locally_(optional)

[7]: https://wikitech.wikimedia.org/wiki/Help:Toolforge/Build_Service#Known_current_limitations

[8]: https://wikitech.wikimedia.org/wiki/Help:Toolforge/Build_Service#Tutorials_for_popular_languages

[9]: https://w.wiki/7kpi



--
Seyram Komla Sapaty
Developer Advocate
Wikimedia Cloud Services

_______________________________________________
Cloud-announce mailing list -- cloud-announce@lists.wikimedia.org
List information: https://lists.wikimedia.org/postorius/lists/cloud-announce.lists.wikimedia.org/

_______________________________________________
Cloud mailing list -- cloud@lists.wikimedia.org
List information: https://lists.wikimedia.org/postorius/lists/cloud.lists.wikimedia.org/

_______________________________________________
Cloud mailing list -- cloud@lists.wikimedia.org
List information: https://lists.wikimedia.org/postorius/lists/cloud.lists.wikimedia.org/