嗨!我叫 Peter,如果你不认识我,我是一名计算机科学专业的学生,目前正在学习 David Humphrey 教授的 2024 年开源主题课程。
自 2024 年 9 月以来,我一直致力于在开源社区中建立自己的影响力。如果你想跟随我的旅程,可以在 GitHub 上找到我:
全栈开发人员 |游戏和人工智能爱好者 -彼得丹万
第一步:了解我正在做什么。 expressjs.com 是express 的官方文档网站,express 是最流行的 Node.js Web 框架之一。虽然从他们设计精美的网站上可以很快掌握这一点,但旅程才刚刚开始。
Express 是一个快速、无主见、简约的 Node.js Web 框架,为 Web 和移动应用程序提供了一组强大的功能。
熟悉该项目后,我寻找了一个可以解决的问题。我找到了这个:
以下链接已损坏 _includes/header/header-id.html
_includes/header/header-th.html
建议更改为:发布更改日志
缺少页面导致 UZ 语言控制台错误: /css/langs/uz.css
建议添加此页面。
我选择这个问题是因为它涉及 HTML 和 CSS - 我熟悉且熟悉的技术。然而,看起来简单的东西实际上教会了我关于开源开发的重要一课:
即使是看起来熟悉的任务也可能涉及不熟悉的领域。
存储库使用了我以前从未接触过的技术,这才是真正学习的开始。我花了大约一个小时才决定是否尝试这个问题——回想起来可能太久了。我很犹豫,因为该项目使用了 Ruby,这对我来说是全新的。
剧透警告:设置 Ruby 是...一次冒险。
设置本地开发环境通常是开源贡献中最具教育意义的部分之一。
通过尝试在本地运行expressjs.com,我了解了一些关于 Ruby 和 Jekyll 的知识。
以下是我的旅程:
最初的困惑:我首先直接在 Windows 上安装 Ruby。虽然它有效,但并不理想,因为我安装的版本与项目中使用的版本不同而出现问题。 Windows 上的版本管理并不有趣。因此,我卸载了 Windows 上安装的 Ruby 及其其他依赖项,并寻找替代解决方案。
WSL 发现:我的研究使我得出的结论是,我应该在 Windows Subsystem for Linux (WSL) 上运行 Ruby,因为它提供了更好的开发环境并可以访问强大的 Ruby 版本管理器 (RVM),它使我能够处理使用不同版本 Ruby 的项目。对我来说,安装 RVM 的感觉非常相似,因为我使用 nvm-windows 来允许我在不同的节点版本之间切换。
版本管理学习曲线:我再次了解了 RVM 以及它与 Node.js 的 nvm 的相似之处。这教会了我开发环境中版本管理的重要性。
以下是我用来准备开发环境的实际命令:
## 1. Installing RVM (Ruby Version Manager) # First, import GPG keys needed to verify RVM installation gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB # Download and install RVM \curl -sSL https://get.rvm.io | bash -s stable # Verify RVM is installed and get its path which rvm # Load RVM into your current shell session source /home/peter/.rvm/scripts/rvm ## 2. Installing Ruby # Install Ruby version 3.3.5 (latest stable as of early 2024) rvm install 3.3.5 # Set 3.3.5 as your default Ruby version rvm use 3.3.5 # Verify RVM and Ruby installations rvm -v ruby -v ## 3. Setting up Jekyll # Install Jekyll and Bundler gems gem install bundler jekyll # Install project dependencies from Gemfile (must be within the target directory with the Gemfile) bundle install # Start the Jekyll server with live reload and external access # --host 0.0.0.0 allows access from other devices on your network # --livereload automatically refreshes your browser when files change bundle exec jekyll serve --host 0.0.0.0 --livereload
配置好我的开发环境后,我就可以开始解决手头的问题,即简单地更新
包含指向英文版链接的损坏链接的锚标记(因为英文版链接并未损坏)。
这是整个贡献中最简单的部分。
我还确保查看一些日志以查看是否有任何需要修复的错误。我建议添加另一个文件 css/id.css,它遵循相同的
已添加的文件的编码格式,因为我有一个可以解决某些错误日志的暗示。
expressjs.com 的维护者之一 Chris Del,提供了非常即时的反馈,表明这是要做的事情(谢谢 Chris!)。
因此,我也将此更改添加到我的拉取请求中。
话虽如此,我所做的更改现在正在等待合并到expressjs.com的主分支中。
后续还专门讨论了expressjs.com网站的标准。即:
用户应该被重定向到有效的英文页面而不是正确语言的损坏链接吗?
这不是由我决定,但我想参与讨论。您可以在这里关注讨论。
最初的一个简单的 HTML/CSS 修复变成了一次旅程,教会了我有关开源开发的宝贵经验:
走出舒适区:虽然我选择了一个涉及熟悉技术(HTML/CSS)的问题,但我最终学习了一个全新的技术堆栈(Ruby/Jekyll)。这告诉我,当我们愿意应对不熟悉的事情时,成长就会发生。
技术发展:设置开发环境、管理版本和使用新工具都是至关重要的技能。每一个挑战都会让下一个挑战变得更容易实现。
社区参与:通过诸如语言重定向讨论之类的讨论,我了解到开源不仅仅是代码 - 它是关于参与影响项目决策的有意义的讨论。
展望未来,我计划通过以下方式进行改进:
最重要的是,我了解到,成为一名高效的开源开发人员并不是要了解一切,而是要愿意学习任何东西。每一次贡献,无论多小,都是一个成长的机会,并对我们关心的项目产生积极影响。
如果您正在考虑参与开源,请记住:从小事做起,保持好奇心,不要害怕边学习边学习。社区随时帮助您成长。
以上是为expressjs做贡献的详细内容。更多信息请关注PHP中文网其他相关文章!