Link to the proposal at debian wiki (In case that you prefer reading it there)
Name and Contact Information
- Name: Ahmed Siam
Email: aahs.coder@gmail.com
IRC Nickname: AhmedSiam on oftc.
- Debian IRC Channels I am Following: #salsaci, #salsa, #debian-outreach
- Timezone: UTC+2
About me
I am a second-year computer science student at Ain Shams University in Egypt.
I have participated in GSoC 2023 as a contributor before.
My GSoC project was about the internationalization of Apertium tools. (Mainly using C++ and ICU4C Library)
For more details: https://summerofcode.withgoogle.com/archive/2023/projects/0lVWglOx
My Accounts:
Debian Wiki: https://wiki.debian.org/AhmedSiam
GitHub: https://github.com/ahmedsiam0
GitLab: https://gitlab.com/ahmedsiam
Personal Website: https://ahmedsiam.com
Project title
- Improving Salsa CI in Debian
Project synopsis
Salsa CI is a custom-built continuous integration framework that is used in the Debian GitLab instance (Salsa), my project is about improving it by solving some issues of the project.
Project Size
Medium project (175 Hours).
Project details
As mentioned in the synopsis, my project idea is about solving some relatively small issues, instead of designing and implementing one larger part of the software.
Those issues would be defined during the community bonding period.
Workflow of Solving the Issue
- Define the issue.
- In case if it is not already defined
- Question interest of being solved
- To make sure that I don't work in issues that are not in the priorities of the project.
- Research it in parallel with asking clarifying questions.
- Providing possible solution(s).
- Implement approved solution.
- Waiting for feedback and updating the solution based on feedback.
As feedback to my questions may delay specially because of the difference of time-zones between me and my mentors, I intend to solve issues asynchronously.
By that I mean that if I need to wait for feedback from my mentors in a specific issue, I will start/continue working in another issue instead of waiting for feedback.
Example of issues that I may solve during the program:
- Signing the pipeline's docker images.
Benefits to Debian
- Improving the pipeline means making the process of maintaining packages more efficient for Debian package maintainers.
Project schedule
- Community Bonding Period: May 1 - 26
- I intend that we use this period for defining at least issues that is going to be solved during the program's first phase.
- First Phase of Coding: May 27 - July 12
- During this phase, I will solve issues that has been selected during the Community Bonding Period.
- In parallel, We will define issues that is going to be solved in the second phase (If it is not defined yet)
- Second Phase of Coding: July 12 - August 19
- Solving issues that has been defined to be solved during this phase.
- Final Week: August 19 - 26
- Wrapping up
- Writing the Final report from the weekly summaries that has been written before.
Deliverables
I intend to deliver reports of my progress regularly during the program.
As my project is medium size (175 Hours), I intend to contribute at the coding period for about 15 hours per week.
Those 15 hours may be divided into five days of the week (Each day about 3 hours).
I intend to:
- Provide reports of time spent on the project each day and what has been done during that time.
- Provide weekly summaries of what has been done during each week.
Repository that I intend to write reports and plan my contributions at: https://salsa.debian.org/ahmedsiam/planning
It illustrates how the reports would look like.
Those reports will also be useful for me at preparing the project's final report.
The design of this repo may change later.
Exams commitment
- I have university final exams on June so my productivity will decrease on this period.
- I intend to compensate that by providing more commitment before and after this period.
Why Debian?
- I have been using Debian-based distros for several years as my main desktop OS (I currently use Kubuntu 22.04 LTS), so I am interested in contributing at Debian as it is the base so improving it means improving my desktop OS.
This article has motivated me more to contribute as it is also an opportunity to improve my technical and non-technical skills and communicate with highly-skilled developers: WhyDebianForDevelopers
- I am specifically interested in Salsa CI because it is related to DevOps/SRE field which is a field I am interested in taking some hands-on experience in.
- I intend to become a regular contributor at Debian.
My previous Debian contributions
Salsa CI
- Enabled aptly job to publish deb packages of different architectures other than AMD64
Merge Request (merged): https://salsa.debian.org/salsa-ci-team/pipeline/-/merge_requests/490
- Intended to solve potential inconsistent behavior on "check gpg signature" job
- It appeared later that the behavior is intended and the merge request has been closed.
To be specific, used git show instead of git log to get the signature key of the user as git log used approach may lead to unexpected results (Mentioned an example on the MR).
Merge Request: https://salsa.debian.org/salsa-ci-team/pipeline/-/merge_requests/491
- Reported an issue that the pipeline fails when running it manually via "Run pipeline" button.
- It appeared later that the salsaci team is already aware of that issue.
Issue: https://salsa.debian.org/salsa-ci-team/pipeline/-/issues/341
Others
In SummerOfCode2024 wiki page: replaced "student" word with "contributor" to be inclusive of all possible candidates as GSoC now accepts non-students.
Are you applying for other projects in GSoC?
- Nope.
About my skills
Relevant skills I recently learnt:
- Debian Packaging
- Salsa CI
- Used Materials
GitLab CI
Used Material: https://docs.gitlab.com/ee/ci/quick_start/tutorial.html
- Bash
Used Material: https://learnxinyminutes.com/docs/bash
- Docker
Used Material: https://docs.docker.com/get-started
My Background relevant skills: Linux Command Line Basics - C++ - Python - Java - Git&GitHub - JavaScript Basics
