ni / ni/ni-apis-python

Incorporate session_utilities.proto split

Open
#75 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
7
Forks
2
Avg merge
1d 18h
Merged PRs (30d)
3

Description

https://github.com/ni/grpc-device/pull/798 split the SessionUtilities interface into a separate .proto file, which broke source compatibility for Python clients.

The first release of ni.grpcdevice.v1.proto will use the old version of session.proto to avoid breaking compatibility with shipped verisons of nimi-python, nidaqmx-python, and measurement-plugin-python.

Here is the migration plan:

  1. Release ni.grpcdevice.v1.proto 1.x that is compatible with the current nimi-python, nidaqmx-python, and measurement-plugin-python.
  2. Update nimi-python, nidaqmx-python, and measurement-plugin-python to use ni.grpcdevice.v1.proto. This should not break clients.
  3. Later, release ni.grpcdevice.v1.proto 2.x with the session.proto updates. This will break clients who mix new/old nimi-python/nidaqmx-python/measurement-plugin-python
  4. If possible, use Obsoletes-Dist to indicate that it is incompatible with old versions of nidmm, nidcpower, etc.? However, I don't know if Poetry supports this either as a producer or consumer of packages.

Originally posted by @bkeryan in https://github.com/ni/ni-apis-python/pull/72#discussion_r2286221907

AB#3236498

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the session.proto history and the split described in PR 798, then inspect how ni.grpcdevice.v1.proto and the related Python packages are released. Trace compatibility for nimi-python, nidaqmx-python, and measurement-plugin-python, and verify what Poetry supports for Obsoletes-Dist. Done means the migration sequence and package metadata behavior are documented or implemented without breaking the shipped clients.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, release
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.