diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b04aa8a487ea0b54d040c00b5451de72538f0859..6ac69b740a54a17fc241fee31374f761bc7f2f52 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,7 +4,7 @@ pages: tags: - docker-amd64 script: - - sphinx-build -b html . public + - "./gitlab-build.sh" artifacts: paths: - public \ No newline at end of file diff --git a/_templates/pdf.html b/_templates/pdf.html index 112193b5b50b09558cc04382c46ea28f8f066739..6f6e190e89063bde94b715278b4d2e25194dc8f1 100644 --- a/_templates/pdf.html +++ b/_templates/pdf.html @@ -1,8 +1,7 @@ {% if pages_slug != "index" %} {% for proposal_name in proposals %} {% if pagename == "proposals/"+proposal_name %} - <!-- TODO: Dynamically create custom link for every proposal PDF--> - <a class="btn btn-danger btn-sm btn-block text-light" role="button" href="https://git.beagleboard.org/gsoc/gsoc.beagleboard.io"> + <a class="btn btn-danger btn-sm btn-block text-light" role="button" href="{{proposal_name}}.pdf"> <i class="fa-solid fa-download"></i> {{proposal_name}}.pdf </a> {% endif %} diff --git a/conf.py b/conf.py index e388fa21e6c302b6921719375fd24ef2982b34d6..5d297545d6acb632445a7a541c53f99d9dbbbcfb 100644 --- a/conf.py +++ b/conf.py @@ -167,6 +167,6 @@ latex_elements = { latex_engine = "xelatex" latex_logo = str("_static/images/logo-latex.pdf") -latex_documents = [ - ("proposals/template", "template.tex", "Project proposal template 2024", "John Doe", "manual"), -] \ No newline at end of file +latex_documents = [] +for proposal in proposals: + latex_documents.append(("proposals/"+proposal, proposal+".tex", "",author, "manual")) \ No newline at end of file diff --git a/gitlab-build.sh b/gitlab-build.sh new file mode 100755 index 0000000000000000000000000000000000000000..c410163b0512774496fd3f767e63add153a83a9f --- /dev/null +++ b/gitlab-build.sh @@ -0,0 +1,25 @@ +#!/bin/bash -xe +mkdir -p public + +echo "**** Updating $PAGES_URL/$VER_DIR ****" +echo "**** env ****" +env + +# Clean build directory +make clean BUILDDIR=public + +# Render HTML +make html BUILDDIR=public +mv public/html/* public/ + +# Render PDF +make latexpdf BUILDDIR=public/ +mv public/latex/*.pdf public/proposals + +# Cleanup +echo "**** cleanup ****" +rm -rf public/doctrees +rm -rf public/latex + +echo "**** env ****" +env \ No newline at end of file diff --git a/guides/mentor.rst b/guides/mentor.rst index a4636e35bf5233fd454e8bcb5ce28ba49cc35a44..0583f8e61681dea6b5ce45fd3638841db7f4e56f 100644 --- a/guides/mentor.rst +++ b/guides/mentor.rst @@ -3,6 +3,41 @@ Mentor guide ############ -Please start by registering your ideas for student projects below by following the template provided with the existing ideas. Furthermore, scroll down to the bottom and give everyone a bit of information about your expertise and availability by adding yourself to the table. Jason will make final approvals for mentor assignments based on if we first get accepted as a mentoring organization and best matching mentor skill sets with student project ideas deemed valuable to the community. +.. youtube:: 3J_eBuYxcyg + :width: 100% + :align: center -You will also need be invited by an administrator to register on the GSoC site and request to be a mentor for BeagleBoard.org 8. \ No newline at end of file +.. important:: + + As a mentor you have to guide students/contributors through the entire process of GSoC, from learning + about `BeagleBoard.org <https://www.beagleboard.org/>`_ community, to helping GSoC Contributors + become familiar with the code base and testing practices, to finally releasing their code on + `OpenBeagle <https://openbeagle.org/>`_ for the world to use! + + You will also need be invited by an administrator to register on the GSoC site and request + to be a mentor for `BeagleBoard.org <https://www.beagleboard.org/>`_. + +`Mentors <https://google.github.io/gsocguides/mentor/>`_ are people from the community who volunteer to work +with a GSoC contributor. Mentors provide guidance such as pointers to useful documentation, code reviews, etc. +In addition to providing GSoC contributors with feedback and pointers, a mentor acts as an ambassador to help +GSoC contributors integrate into their project’s community. `BeagleBoard.org <https://www.beagleboard.org/>`_ +assign more than one mentor to each of their GSoC contributors. Many members of `BeagleBoard.org <https://www. +beagleboard.org/>`_ community also provide guidance to GSoC contributors without mentoring in an “official†+capacity, as much as they would answer anyone’s questions on `Discord <http://bbb.io/gsocchat>`_ and +`Forum <https://forum.beagleboard.org/c/gsoc>`_. + +.. note:: + Official mentors can use :ref:`gsoc-project-ideas` page as template for providing their own project ideas. + Remember these are supposed to be for software projects that service the Beagle and general open source + embedded systems community, not theses, how-to guides or what I did over my summer vacation ideas. + +Prospective mentors, sudents will use `Discord <http://bbb.io/gsocchat>`_ and `Forum <https://forum.beagleboard.org/c/gsoc>`_ +to make contact with you, so be sure to provide up-to-date information. Please feel free to add yourself on mentors page and we will monitor +and police that list. Acceptance as an official mentor with the ability to rate proposals and grade students will come via the Google system. +We will only approve official mentors who have a prove track record with Beagle, but welcome all community members to provide guidance to both +mentors and students to best service the community as a whole. Don’t be shy and don’t be offended when we edit. We are thrilled to have you on-board! + + + +.. tip:: + Chekcout `official GSoC mentor guide <https://google.github.io/gsocguides/mentor/>`_ from Google. \ No newline at end of file diff --git a/guides/proposal.rst b/guides/proposal.rst index ff1b568574ce17b0e3aa142f09d9786643ca2dff..79f6bd7ab632c51f1b3c75bcc79f9957647e2046 100644 --- a/guides/proposal.rst +++ b/guides/proposal.rst @@ -1,4 +1,64 @@ .. _gsoc-proposal-guide: Proposal guide -############### \ No newline at end of file +############### + +.. admonition:: Did you know? + + Each year Google turns down many more applicants than it funds. While pre-proposal activities are key to + improving your chances of success, a poorly-written proposal is an easy way to fail. There is much you can + do to ensure that your project proposal catches the attention of organization reviewers in a positive way. + +How to write a successful proposal? +*********************************** + +`BeagleBoard.org <https://www.beagleboard.org/>`_ has received a large number of GSoC student proposals over the years +that we have participated in the program. Some of these proposals are quite good, but many are poor proposals that would +not be accepted by any organization participating in GSoC. Unsuccessful proposals often do/have the following: + +1. Try to pass off previous school projects as something to do for GSoC. The work has already done, and the project often has very little to do with `BeagleBoard.org hardware <https://www.beagleboard.org/boards>`_. +2. Roughly a half page of “proposal†that is submitted shortly before the submission deadline. These proposals are usually little more than a name, contact information, and a statement of “I will work hard.†+3. A generic proposal that was sent to every other GSoC org that has very few details on deliverables or schedule. +4. A project idea that was never talked about to the `BeagleBoard.org <https://www.beagleboard.org/>`_ mentors in `Discord <http://bbb.io/gsocchat>`_ or in `Forum <https://forum.beagleboard.org/c/gsoc>`_. The proposal was submitted without ever “meeting†the Beagle community. + +In order to be successful, a proposal has to be relevant to `BeagleBoard.org <https://www.beagleboard.org/>`_, a proposal +topic that the mentors recognize (either from being proposed on :ref:`gsoc-project-ideas` page or from the topic being +discussed on our `Discord <http://bbb.io/gsocchat>`_ or in `Forum <https://forum.beagleboard.org/c/gsoc>`_), and sufficiently +detailed that the mentors know exactly what you’ll be creating and when it will be done. Successful proposals are also almost +always shown to mentors via Discord or IRC well before the submission deadline so that the mentors can comment on it and offer +suggestions that improve the proposal. + +.. tip:: + Start your proposal early, speak with the mentors often, and dedicate an appropriate amount of time to both thinking + about the deliverables for your project and how you can describe those deliverables in writing. + +Using proposal template +************************ + +To make the project proposal writing process easier for all the GSoC contributors/students we have created a :ref:`gsoc-proposal-template`. + +.. tip:: + Start with :ref:`gsoc-contribution-guide` to simplify the proposal writing process using OpenBeagle CI. It's always recommended to create a fork + of `gsoc.beagleboard.io repo on OpenBeagle <https://openbeagle.org/gsoc/gsoc.beagleboard.io>`_ and clone on your local machine. Instruction for + setting up Sphinx on local machine are also provided on :ref:`gsoc-contribution-guide`. For any query you can reach out on + `Discord <http://bbb.io/gsocchat>`_ or `Forum <https://forum.beagleboard.org/c/gsoc>`_. + +You can either open your cloned `gsoc.beagleboard.io repo <https://openbeagle.org/gsoc/gsoc.beagleboard.io>`_ using Visual Studio Code on your local machine or use OpenBeagle Web IDE. Now, follow steps below to write your proposal, + +1. Create a copy of ``gsoc.beagleboard.io/proposals/template.rst`` in ``gsoc.beagleboard.io/proposals`` folder. Rename the file to reflect your project (``project-name.rst``) or your initials (``<myname>.rst``). It's recommended to follow the structure and use a filename with all smallcase letters and without any space. +2. Start editing your proposal, it should be straightforward if you already know reStructuredText. Don't worry if you are new to reStructuredText, checkout our `ReStructuredText Cheat Sheet <https://docs.beagleboard.org/latest/intro/contribution/rst-cheat-sheet.html>`_ which should guide you through writing your proposal using reStructuredText. +3. Commit your changes and push to your fork often. Share the commit links with mentors so that they can review your proposal drafts and provide their valuable feedback. +4. Check rendered version of your proposal on OpenBeagle pages, to view a rendered version of your updates you can go to ``<username>.beagleboard.org/<repo name>`` where ``username`` is your OpenBeagle username and ``<repo name>`` is the repository name you have selected while forking the project. For example, if username is ``lorforlinux`` and project name is ``gsoc.beagleboard.io`` the rendered site can be accessed live via `lorforlinux.beagleboard.io/gsoc.beagleboard.io <http://lorforlinux.beagleboard.io/gsoc.beagleboard.io>`_. + +.. tip:: + 1. For quick review, you can share OpenBeagle pages link with mentors and community members on `Discord <http://bbb.io/gsocchat>`_ or `Forum <https://forum.beagleboard.org/c/gsoc>`_. + 2. On secondry (right) side bar you will see a **PDF download button** like shown below. Click that button on your proposal page to download PDF version of your proposal which you can submit directly on GSoC porposal submission portal. + + .. raw:: html + + <br> + <a class="btn btn-danger btn-sm btn-block text-light" role="button" href="/proposals/template.pdf"> + <i class="fa-solid fa-download"></i> template.pdf + </a> + + diff --git a/guides/student.rst b/guides/student.rst index b8f69d727e94d6f57149a4afa1113afa605276fc..0e3cb8d891e456942f006523babef88f25d08603 100644 --- a/guides/student.rst +++ b/guides/student.rst @@ -3,6 +3,10 @@ Student guide ############# +.. youtube:: YN7uGCg5vLg + :width: 100% + :align: center + General requirements ******************** @@ -11,8 +15,8 @@ All projects have the following basic requirements: 1. Students must create accounts on `OpenBeagle <https://openbeagle.org/>`_, `Discord <http://bbb.io/gsocchat>`_ and `Beagle Forum <http://bbb.io/gsocml>`_ prior to creating their application. 2. All newly generated materials must be released under an `open source license <http://www.opensource.org/licenses>`_. Individual students shall retain copyright on their works. 3. Students will demonstrate their ability to cross-compile and utilize version control software by creating a “Hello World†application and generating a pull request to `jadonk/gsoc-application <https://github.com/jadonk/gsoc-application/tree/master/ExampleEntryJasonKridner>`_. For assistance, please visit `Discord <http://bbb.io/gsocchat>`_ or utilize the `Beagle Forum <http://bbb.io/gsocml>`_. The “Hello World†application must print your name and the date out in an ARM Linux environment. Freely available emulators may be used to test your application or you can ask anyone on the chat or mailing list to help you test. -4. All projects will produce reusable software components and will not be “what–I-built-over-my-summer-vacation†projects. Including a hardware component is welcome, but the project deliverable will be software that may be utilized by a wide audience of the `BeagleBoard.org <http://beagleboard.org/>`_ community. -5. Students will demonstrate their ability to collaborate by creating a project proposal on this site using our :ref:`proposal template <proposal_template>` and utilizing `Discord <http://bbb.io/gsocchat>`_ to collect quotes regarding the usefulness of their proposal to the `BeagleBoard.org <http://beagleboard.org/>`_ community. **Use of Google Docs for proposal development is discouraged due to insufficient revision control and extensive use of computing resources having numerous documents open simultaneously**. +4. All projects will produce reusable software components and will not be “what–I-built-over-my-summer-vacation†projects. Including a hardware component is welcome, but the project deliverable will be software that may be utilized by a wide audience of the `BeagleBoard.org <https://www.beagleboard.org/>`_ community. +5. Students will demonstrate their ability to collaborate by creating a project proposal on this site using our :ref:`proposal template <proposal_template>` and utilizing `Discord <http://bbb.io/gsocchat>`_ to collect quotes regarding the usefulness of their proposal to the `BeagleBoard.org <https://www.beagleboard.org/>`_ community. **Use of Google Docs for proposal development is discouraged due to insufficient revision control and extensive use of computing resources having numerous documents open simultaneously**. 6. Source code generated during the project must be released on OpenBeagle (and we’ll setup a mirror on `Github.com <http://github.com/>`_). 7. Students will provide two recorded audio/video presentations uploaded to Youtube or Vimeo (screencasts are appropriate), one near the beginning of the project summarizing their project goals and another in the wrap-up phase to summarize their accomplishments. Examples can be found on `http://beagleboard.org/gsoc <http://beagleboard.org/gsoc>`_. There is no requirement to show your faces or use English. @@ -28,4 +32,20 @@ All projects have the following basic requirements: 4. Plans for this week For example, `Weekly Progress Report Thread: - Cape Compatibility <https://forum.beagleboard.org/t/weekly-progress-report-thread-cape-compatibility/28709/9>`_ \ No newline at end of file + Cape Compatibility <https://forum.beagleboard.org/t/weekly-progress-report-thread-cape-compatibility/28709/9>`_ + +Student proposals can encompass projects based on the :ref:`ideas page <gsoc-project-ideas>` or can include personal project ideas, +but should be focused on generating a sustainable and reusable open source software component. Previous Google Summer of Code projects show +that the key to success is being passionate about your project, so propose something that is extremely interesting to you, even +if it is not on this list. We will be glad to help students develop ideas into projects via `Discord <http://bbb.io/gsocchat>`_ +and `Forum <https://forum.beagleboard.org/c/gsoc>`_. There are many potential project ideas and we will match students to projects +based on their interests and help scope the proposals to something that can be completed in the Summer of Code timeframe. + +.. tip:: + There are more than a thousand existing projects listed at `Projects Archive <http://www.beagleboard.org/projects>`_. + If you are interested in any of the projects listed on the `BeagleBoard.org <https://www.beagleboard.org/>`_ projects page, + contact the project members to see if there are any aspects of their projects that can be enhanced to create a GSoC project. + There are also several ideas on the `ECE497 class project idea list <https://elinux.org/ECE497_Project_Ideas>`_. + Note, however, we are looking for projects that provide a service to the developer community and aren’t simply “look what cool + thing I made or you can makeâ€. The projects should provide a useful software component for other people to utilize. + diff --git a/index.rst b/index.rst index 01f583cd57abb62763aea5dbaf484d728a92e1ff..d78832cc7927b7cdc52ffd6bb98ee56828c9cefd 100644 --- a/index.rst +++ b/index.rst @@ -18,9 +18,13 @@ GSoC @ BeagleBoard.org open source developers! The 2024 student application window will be open from `March 18th 2024 <https://developers.google.com/open-source/gsoc/timeline#march_18_-_1800_utc>`_ to `April 2nd 2024 <https://developers.google.com/open-source/gsoc/timeline#april_2_-_1800_utc>`_! - But don't wait for then to engage! Come to our `Discord <https://discord.com/invite/e58xECGWfR>`_ and + But don't wait for then to engage! Come to our `Discord <http://bbb.io/gsocchat>`_ and `Forum <https://forum.beagleboard.org/c/gsoc>`_ to share ideas today. +.. youtube:: 7jD2tChhrWM + :width: 100% + :align: center + .. note:: Google Summer of Code is open to individuals age 18 and older in most countries who are new or beginner diff --git a/proposals/index.rst b/proposals/index.rst index 3cb1745c20c985ab05113f2593b1c76fd1825e33..4ec8c0ac956c4e1a9f8dc5824af63f321f1b98a7 100644 --- a/proposals/index.rst +++ b/proposals/index.rst @@ -3,6 +3,9 @@ Proposals ######### +.. tip:: + + Checkout :ref:`gsoc-proposal-guide` to write your own proposal. .. toctree:: diff --git a/proposals/template.rst b/proposals/template.rst index 66184dbc884fef46916be160876c22c86548b98c..45dfc3991804f1f917adfef3033edf11e0c23df8 100644 --- a/proposals/template.rst +++ b/proposals/template.rst @@ -1,4 +1,4 @@ -.. _proposal_template: +.. _gsoc-proposal-template: Proposal template ################# @@ -202,8 +202,8 @@ What will you do if you get stuck on your project and your mentor isn’t around Benefit ======== -If successfully completed, what will its impact be on the `BeagleBoard.org <http://beagleboard.org/>`_ community? Include quotes from `BeagleBoard.org <http://beagleboard.org/>` -community members who can be found on `Discord <https://discord.com/invite/e58xECGWfR>`_ and `BeagleBoard.org forum <https://forum.beagleboard.org/c/gsoc/13>`_. +If successfully completed, what will its impact be on the `BeagleBoard.org <https://www.beagleboard.org/>`_ community? Include quotes from `BeagleBoard.org <http://beagleboard.org/>` +community members who can be found on `Discord <http://bbb.io/gsocchat>`_ and `BeagleBoard.org forum <https://forum.beagleboard.org/c/gsoc/13>`_. Misc ====