Fullname: FATIH ATES
GSoC Display Name: FATIH ATES
E-mail: [email protected]
Portfolio: https://fatiiates.github.io/
GitHub: https://github.com/fatiiates
LinkedIn: https://www.linkedin.com/in/fatiiates/
Medium: https://fatiiates.medium.com/
Resume: Link to Resume
- SHORT DESCRIPTION - I am a 3rd year student at Bursa Technical University(Turkey), working toward my bachelor’s degree in Computer Engineering with heavy emphasis on programming and software development. I have been developing myself on Cloud Infrastructure and Unix systems for one and a half years. And I have knowledge of the Java programming language. 
- GSOC PROPOSAL DATA - I was in the BTU DSC core team for a year. And now I am developing software for Professor Turgay Tugay BILGIN project, supported by TUBITAK. Everything I do is in my portfolio (Projects I developed, Resume, University Background). 
- CNB and Jenkins Plugins - Cloud Native Buildpacks turn your code into OCI-compliant containers. They examine your source code, build it, and create a container image with all the required dependencies to run your application.[1] - Jenkins is an open source CI server written in Java to create a chain of actions to automatically perform the CI process. Jenkins supports software creation, testing, documentation, deployment, and the entire software development lifecycle. 
- PROBLEM - Writing a plugin necessary for Jenkins users to use buildpacks in their pipelines. 
- INTEREST - I reviewed your issue on github. The proposed solution seems reasonable. Additionally, I reviewed the packages created for CircleCI. I've read blogs about topics like writing plugins on Jenkins and I'm interested in your project because I want to learn about CI processes in a sense. 
- IMPLEMENTATION - In the proposed solution, we will prepare a plugin with DSL syntax like Docker Pipeline plugin. And we will perform operations in Java language by interpreting these entered scripts like an interpreter. - I want to give an example from the plugin made for CircleCI before.[2] Suppose we choose yaml format as DSL. When you are given a yaml script like the one below. - We can parse the yaml file to classes as described in the following link. - And then we'll have the inputs. There is only one job here(buildpacks/build). This job has two variables. It could also have a list or other parameters as environment variables. However, the basic command is as follows. - Then it may be enough to run the following command with Java. - pack build --builder heroku/buildpacks:18 myimage- Thus, our docker image is made ready with buildpacks. - Now that these operations are done, we need to create a plugin on Jenkins. - We will create a plugin as described in the jenkins tutorial. - As a result, we will have a plugin such as a Docker Pipeline Plugin. 
- MOTIVATION - I am currently in 3rd grade and can implement various web applications and take care of services. However, this is not enough. The applications I develop are independent of cloud logic. I'm learning k8s right now and I'm thinking of working as a DevOps Engineer in the future. And so I need to master the CI / CD processes and I will be doing an internship at a company this summer, which means there are a lot of engineers I can consult with on problems that I will have difficulty solving. In addition, although I have COVID-19, I am in the city where my university is located and I can meet with the Professors at my school whenever I want, so I get their support. But my main motivation is to be an open source supporter. 
- TIMELINE - MAY 17 - JUNE 7
 - Meeting with the community, exchanging ideas, conducting solution-oriented resource research, learning your documentation rules and preparing a requirement analysis and a strategic plan. - JUNE 7 - JUNE 14
 - A DSL syntax must be created or we can use a prebuilt syntax. - JUNE 14 - JUNE 21
 - Interpretation will be performed on the Java programming language according to the agreed syntax. - JUNE 21 - JULY 05
 - The operations to be performed according to the interpretation process will be coded with the Java programming language. - JULY 05 - JULY 12
 - Testing and documentation of the code obtained. - JULY 12 - JULY 16
 - Situation assessments with mentors. Defining the next process. Innovations, additions and documentation planning to be made. - JULY 16 - JULY 30
 - Implementing the obtained code to Jenkins. - JULY 30 - AUGUST 16
 - Comprehensive testing and documentation of the code obtained. - AUGUST 16 - AUGUST 23
 - Delivery of the entire project and documentations and sending final evaluations. - AUGUST 23 - AUGUST 30
 - Mentors submit their final evaluation. - AUGUST 31
 - Announcement of the results. 
- REFERENCES 
