Re: [Outreachy][proposal]: Finish adding a 'os-version' capability to Git protocol v2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Oct 29, 2024 at 9:13 AM Christian Couder
<christian.couder@xxxxxxxxx> wrote:
>
> Hi,
>
> On Mon, Oct 28, 2024 at 10:27 AM Usman Akinyemi
> <usmanakinyemi202@xxxxxxxxx> 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@xxxxxxxxx> wrote:
> > >
> > > On Mon, Oct 28, 2024 at 8:26 AM Christian Couder
> > > <christian.couder@xxxxxxxxx> wrote:
>
> Please remove previous discussions you don't reply to at the bottom of
> your emails.
Noted.
>
> Thanks,
> Christian.





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux