From: Usman Akinyemi <usmanakinyemi202@gmail.com>
To: Christian Couder <christian.couder@gmail.com>
Cc: git@vger.kernel.org, Patrick Steinhardt <ps@pks.im>,
Phillip Wood Phillip Wood <phillip.wood@dunelm.org.uk>,
Taylor Blau <me@ttaylorr.com>,
gitster@pobox.com
Subject: Re: [Outreachy][proposal]: Finish adding a 'os-version' capability to Git protocol v2
Date: Tue, 29 Oct 2024 09:52:04 +0000 [thread overview]
Message-ID: <CAPSxiM_JCGtkcaxRN8+=cOCgpWtWZPC8W=Wv23dCcV_g-wwwPg@mail.gmail.com> (raw)
In-Reply-To: <CAP8UFD15F2bdQakdEK2K195FV5QrK+9Kw8Z2svysAjNGGL0Jmw@mail.gmail.com>
On Tue, Oct 29, 2024 at 9:13 AM Christian Couder
<christian.couder@gmail.com> wrote:
>
> Hi,
>
> On Mon, Oct 28, 2024 at 10:27 AM Usman Akinyemi
> <usmanakinyemi202@gmail.com> wrote:
>
> > Review the Current Patch Series
> > --------------------------------------------
> > 1. Examine the Patch: Thoroughly analyze the existing patch series
> > submitted to the Git mailing list. Understand its design and
> > functionality, focusing on:
> > - How the OS information is gathered and transmitted.
> > - Current configurations and their implications on data transmission.
> > 2. Feedback Analysis: Collect feedback from the Git mailing list
> > discussion regarding the patch. Identify key concerns, especially
> > related to:
> > - Privacy issues.
> > - Default behavior expectations.
> > - Cross-platform compatibility.
> > 3. Consider User-Agent Integration: Investigate the suggestion to
> > integrate the 'os-version' data into the existing user-agent string
> > rather than creating a new capability. Evaluate:
> > - The implications of combining this data with the user-agent.
> > - How this approach might address concerns about telemetry and user privacy.
> >
> > Implement Default Behavior for 'os-version'
> > ----------------------------------------------------------
> > 1. Modify Default Configuration: Adjust the implementation so that by
> > default, only the OS name (e.g., "Linux" or "Windows") is sent during
> > communications.
> > 2. Impact Assessment: Evaluate how this change impacts existing users
> > and any potential performance implications.
> >
> > Introduce a Configuration Variable
> > ---------------------------------------------
> > 1. Define Configuration Options
> > - Disable Option: Allow users to disable the 'os-version'
> > capability entirely via configuration.
> > - Verbose Option: Enable a verbose mode that sends detailed OS
> > information (e.g., the output of the uname -srvm command).
> > - Custom Option: Allows users to specify components independently,
> > using variables such as $OS_NAME for OS, $DISTRO for Linux
> > distribution, and $ARCH for architecture.
> > For example:
> > i. "OS: $OS_NAME, Distro: $DISTRO, Arch: $ARCH" might output "OS:
> > Linux, Distro: Fedora, Arch: x86_64".
> > ii. "Distro: $DISTRO Version, OS: $OS_NAME" could yield "Distro:
> > Ubuntu 22.04, OS: Linux"
>
> Do you have ideas about how this configuration variable could be
> named? An example of what the doc for it could look like?
>
> I haven't looked much into it, so I don't know what's best, but for a
> custom option, an alternative to using $OS_NAME, $DISTRO, $ARCH, etc,
> might be to use things like %(os_name), %(distro), %(arch), etc which
> are used in ref-filter formats (see git for-each-ref documentation).
>
Hi Christian,
I think going with the one in git for-each-ref is better for
consistency across Git.
> > 2. Documentation: Improve the documentation outlining how to enable,
> > disable, and configure the 'os-version' capability. Include examples
> > for:
> > - Basic usage (default OS name).
> > - Detailed usage (full OS version information).
> > 3. Implementation: Code the configuration settings and ensure they are
> > recognized by the Git system.
> >
> > Fix Cross-Platform Tests
> > ---------------------------------
> >
> > 1. Identify Issues and added tests for changes/addition: Investigate
> > existing test failures, particularly those occurring on Windows and .
> > - Review the test logs and identify the root causes of failures.
> > - Analyze differences in OS behaviors and how they affect the tests.
> > - Cross-platform tests to validate the functionality on Linux,
> > Windows, and macOS environments.
>
> It might be nice to explain how you plan to test on different platforms.
Noted, I will do that.
>
> > 2. Implement Fixes:
> > - Modify tests to ensure they run correctly on Windows,
> > addressing any compatibility issues with the test framework or Git
> > commands.
> > - Ensure all tests reflect the changes made to the OS reporting
> > capabilities.
> >
> > Testing and Validation
> > ------------------------------
> > Ensure comprehensive test coverage—including default behavior,
> > configuration options, and edge cases—integrate tests into the Git CI
> > pipeline for automatic execution, and share results with the community
> > for feedback on robustness and additional scenarios.
> >
> > Documentation Updates
> > ---------------------------------
> >
> > 1. User Documentation: Update the Git documentation to include:
> > - Instructions on how to configure the feature, with practical examples.
> > - Best practices regarding data privacy when using the capability.
> > 2 Developer Documentation: Include comments in the code for
> > maintainability and understanding of how the 'os-version' capability
> > works internally.
> >
> > Prepare for Merging
> > ----------------------------
> > 1. Final Review: Conduct a thorough review of all code, tests, and
> > documentation. Ensure everything aligns with Git’s contribution
> > standards.
> > 2. Engagement with Community: Present the finalized patch to the Git
> > mailing list, addressing any additional concerns raised during the
> > discussions.
> > 3. Merge Process: Coordinate with the maintainers for merging the
> > patch into the main branch, ensuring all feedback has been
> > incorporated.
> >
> >
> > —------------------------- Timeline —-------------------------------------
> >
> > Community Feedback and Finalization
> > =============================
> > Dates: November 26 - December 8
> > Engage with the Git community to gather input, especially on privacy
> > concerns and minimal data sharing. Determine default behavior (sharing
> > only OS name) and finalize whether to use "user-agent" or another
> > identifier in the protocol(os-version).
> >
> > Minimal Default Implementation
> > ========================
> > Dates: December 9 - December 20
> > Implement the core feature to share only the OS name by default,
> > keeping data minimal as per feedback.
> > Send Patches for review from the Git community
> >
> > Configurable Options for OS Version
> > ============================
> >
> > Dates: December 21 - December 30
> > Develop settings to allow users to disable OS data sharing or choose
> > verbose mode (e.g., uname -srvm output).
> > Send Patches for review from the Git community
>
> My opinion is that disabling OS data sharing will be required from the
> start, while choosing a verbose mode or a custom mode could be
> developed afterwards. So I think steps like the following make more
> sense:
>
> 1. Implement the core feature to share only the OS name by default, as
> well as an option to disable that feature.
> 2. Implement a verbose mode.
> 3. Implement a custom mode.
Noted, I will change that.
>
> > Cross-Platform Testing (Focus on Windows)
> > ==================================
> >
> > Dates: December 31 - January 13
> > Conduct robust testing across platforms, addressing prior Windows
> > compatibility issues.
> > Send Patches for review from the Git community
>
> My opinion is that testing on all the platforms will be required for
> each step, so that cannot be left for a later step. It should be
> integrated into each of the development steps.
Noted, I will make changes to that.
>
> > Beta Testing and Community Feedback
> > ==============================
> > Dates: January 14 - January 27
> > Release for beta testing, integrate feedback, and refine functionality
> > based on real-world use.
>
> This should also be part of each of the development steps.
Yeah.
>
> Also new features often spend some time in the 'next' branch before
> being merged to master, which might be considered some kind of beta
> testing, but we don't call it "beta testing". Before a new release is
> tagged, we have a few rc0, rc1, etc releases, but they are not called
> "beta" releases either. They are actually called "rc" releases, "rc"
> meaning "Release Candidate". So overall, to avoid confusion, I think
> it's better to not use the "beta testing" term unless you explicitly
> say what you mean by it.
>
I will make use of rc here.
> > Documentation
> > ============
> > Dates: January 28 - February 10
> > Document feature usage, configuration options, and setup instructions
> > for smooth adoption.
> > Send Patches for review from the Git community
>
> Documentation should also be part of each of the development steps.
Noted.
>
> > Final Review and Merge
> > ===================
> > Dates: February 11 - March 6
> > The final review phase will include presenting the completed work to
> > the Git community for a thorough final assessment. Any remaining
> > concerns or suggestions will be addressed before the patch is prepared
> > for merge. This stage will allow for further feedback, particularly
> > from stakeholders and maintainers who raised the initial questions,
> > ensuring the solution is acceptable to the broad Git community. Once
> > consensus is achieved, the patch will be merged into the Git mainline
> > codebase, concluding the project.
>
> Not sure how things will go with reviews, but we prefer if development
> can be incremental. So I hope some initial patches will be merged well
> before the end of the internship.
>
> > Availability
> > ========
> > I will be available to work for the required minimum of 40hours per week
> > during the internship period and will be happy to extend if required.
> >
> > Blogging
> > =======
> > I also plan to keep writing blogs after two weeks, to track my
> > progress, give updates about what I am currently working on and also
> > as a documentation for future contributors.
> >
> > Post Outreachy Internship
> > ====================
> > One of my dreams is to be an active member of an open-source community
> > which I can proudly support and contribute to. Continuing my
> > contributions after the internship is a big part of making that dream
> > a reality. I’m committed to contributing to Git long-term, helping to
> > improve the project and supporting new contributors along the way.
> >
> > Appreciation
> > ==========
> > I really appreciate the support and guidance I got from the Git
> > community. I also appreciate all the effort from the outreachy mentor.
> > Thanks for your time.
>
> Thanks for your application!
Thank you very much, I really appreciate the review. I will make the changes.
>
> > On Mon, Oct 28, 2024 at 9:09 AM Usman Akinyemi
> > <usmanakinyemi202@gmail.com> wrote:
> > >
> > > On Mon, Oct 28, 2024 at 8:26 AM Christian Couder
> > > <christian.couder@gmail.com> wrote:
>
> Please remove previous discussions you don't reply to at the bottom of
> your emails.
Noted.
>
> Thanks,
> Christian.
next prev parent reply other threads:[~2024-10-29 9:52 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-27 14:53 [Outreachy][proposal]: Finish adding a 'os-version' capability to Git protocol v2 Usman Akinyemi
2024-10-28 1:56 ` Usman Akinyemi
2024-10-28 6:10 ` Patrick Steinhardt
2024-10-28 6:20 ` Usman Akinyemi
2024-10-28 7:30 ` Patrick Steinhardt
2024-10-28 8:26 ` Christian Couder
2024-10-28 9:09 ` Usman Akinyemi
2024-10-28 9:27 ` Usman Akinyemi
2024-10-29 9:13 ` Christian Couder
2024-10-29 9:52 ` Usman Akinyemi [this message]
2024-10-29 11:50 ` Usman Akinyemi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAPSxiM_JCGtkcaxRN8+=cOCgpWtWZPC8W=Wv23dCcV_g-wwwPg@mail.gmail.com' \
--to=usmanakinyemi202@gmail.com \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=me@ttaylorr.com \
--cc=phillip.wood@dunelm.org.uk \
--cc=ps@pks.im \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).