Photo by [Yancy Min](https://unsplash.com/@yancymin?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash) on [Unsplash](https://unsplash.com/photos/a-close-up-of-a-text-description-on-a-computer-screen-842ofHC6MaI?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash)

The Ultimate Guide to Git for Open-Source Development

Initial Process To develop an open-source project, we must first Fork the Repository , as it is not our own project, and we don’t have write access. Once we fork the repository, an identical copy will appear under our account. We usually refer to the original project as the upstream repo and the forked copy as the downstream repo. Since we have write access to the forked repository, the first step is to clone it . Note that we should clone our forked repo, not the upstream repo. ...

Posted on: 2024-08-13 · Edited on: 2024-10-22 · Chi-Sheng Liu
Chi-Sheng Liu @ Apache CommunityOverCode Asia 2024

Apache CommunityOverCode Asia 2024 Volunteering Experience

What is the Apache Software Foundation? The Apache Software Foundation (ASF) is currently one of the world’s largest open-source software organizations, composed of developers from around the globe. The software under its umbrella follows the Apache License , and it has fostered many well-known projects such as Hadoop, Spark, Kafka, and Flink. Roles in ASF Projects According to the official website , each Apache project typically has the following roles: User: Uses the project’s software but does not participate in development. Developer (Contributor): Participates in project development but does not have write access to the repository. Committer: After making significant contributions, the PMCs may nominate you as a Committer, granting write access to the repository. If you don’t already have an Apache email, you’ll get one. For example, my email is [email protected] . PMC Member: After more prolonged involvement, you may be nominated as a PMC Member, having the power to decide the project’s long-term direction, nominate active contributors as Committers, and vote on formal releases. PMC Chair: The PMC Chair is the leader among PMC Members, responsible for communicating with the board and additional duties. ASF Member: After becoming a PMC Member for multiple projects, you may be nominated as an ASF Member, with the right to elect and be elected to the board and incubate new projects. What is Apache CommunityOverCode? Apache CommunityOverCode, formerly known as ApacheCon, is an annual open-source software conference organized by the Apache Software Foundation, held in Asia, Europe, and North America. It was renamed to emphasize that “ a healthy community is a higher priority than good code .” ...

Posted on: 2024-08-08 · Edited on: 2024-09-03 · Chi-Sheng Liu
Screenshot of the home page of my website

How to Build Personal Website for Free With Hugo

Introduction Can you believe it? Except for the domain name, the setup of my personal website is completely free! After all, this is just a site where I plan to post casual articles, so I’ll save money wherever I can. Let me explain how I built this website. Framework Selection Since I wanted it to be free, I couldn’t choose an SSR (Server-Side Rendering) framework like WordPress, as deploying it to a host would cost money. Although some cloud platforms offer free tiers, increased traffic would inevitably incur costs. Therefore, choosing an SSG (Static Site Generation) framework and deploying it on a platform offering free static site hosting is more sensible. ...

Posted on: 2024-07-06 · Edited on: 2024-08-31 · Chi-Sheng Liu
Photo by [Kent Pilcher](https://unsplash.com/@kent_pilcher?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash) on [Unsplash](https://unsplash.com/photos/black-instrument-cluster-panel-jW8hkB_Qmj8?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash)

How to Reproduce Kubernetes Node-pressure Eviction via K3d

Background A few days ago, while developing the KubeRay project, I learned about a Kubernetes behavior from the issue’s comment section . There are two types of Eviction: Node-pressure Eviction and API-initiated Eviction . API-initiated Eviction is done by directly calling the API or using commands like kubectl drain. Pods evicted this way will ultimately be deleted and usually recreated on another node. However, for Node-pressure Eviction, kubelet will only set the Pod’s Phase to Failed without deleting it. Therefore, if the controller does not handle it properly, the Pod will not be recreated on another node. ...

Posted on: 2024-07-05 · Edited on: 2024-08-31 · Chi-Sheng Liu