Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Criteria and workflow for major changes and additions #78

Closed
fspaolo opened this issue Jun 17, 2020 · 1 comment
Closed

Criteria and workflow for major changes and additions #78

fspaolo opened this issue Jun 17, 2020 · 1 comment
Labels
Discussion - feedback solicited This is a generic issue post, and feedback is requested to move forward with implementation.

Comments

@fspaolo
Copy link

fspaolo commented Jun 17, 2020

Starting this thread for discussion on workflow and guidelines for major modifications to the package. Here are a few topics that came to mind when I started thinking on new feature implementations:

  • How to proceed when a feature addition requires significant modifications to stable classes/methods/submodules?

  • How to proceed when a new implementation changes/affects the overall strategy/approach used by the package?

  • How to proceed regarding suggestions of, for example, new data structures, file formats and strategies that have not been extensively tested or adopted?

In particular I want to bring attention to the distinction between what "seems" in principle an optimal way to operate with the data, and what actually "gets the job done" in practice (based on experience and use cases).

@JessicaS11
Copy link
Member

Thanks for starting this critical conversation, @fspaolo!

Some of these points are addressed to an extent in the icepyx Development Plan, and I'll also respond here.

Right now, icepyx is young enough that it has not yet had a non-developmental release. According to the PEP440 Versioning Standards, we can make major changes to the API through until we release a version >0 (which we have not yet done. All of the current releases are still considered pre-releases and have version < 0). After that time, major API changes that are not backwards compatible would require version increments in the ones digit. Following best practices, I have also included warnings when major changes were made (so if you check out icepyx.core.icesat2data in the renaming branch, it simply contains an Icest2Data class with a DepricationWarning to let users know about the switch).

I have not yet heard any suggestions that I think are out of line with the goals/strategy/approach of icepyx or that use any non-stable libraries, so I'm thinking the best approach might be to address these questions as they arise. The pace of change in software development is staggering, so it can be hard to say what will or won't stick around.

You're right to point out that there's a fine line between proven practices and what "seems" best. icepyx tries to bridge that gap by enabling the user to interact with the data in multiple ways, using lower level manipulations under the hood but without the steep learning curve that many data manipulations require. For me, icepyx provides a high level wrapper for ICESat-2 data interactions just like fiona and shapely and geopandas provide great wrappers to gdal and ogr (which is what I learned to use because these other tools weren't widely used yet!).

@JessicaS11 JessicaS11 added this to To do in planned features and improvements via automation Jul 6, 2020
@JessicaS11 JessicaS11 added the Discussion - feedback solicited This is a generic issue post, and feedback is requested to move forward with implementation. label Jul 6, 2020
@JessicaS11 JessicaS11 added this to Suggested Topics in Discussion and Decision Items Jul 16, 2020
@icesat2py icesat2py locked and limited conversation to collaborators May 20, 2022
@JessicaS11 JessicaS11 converted this issue into discussion #309 May 20, 2022

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
Discussion - feedback solicited This is a generic issue post, and feedback is requested to move forward with implementation.
Projects
Discussion and Decision Items
  
Suggested Topics
Development

No branches or pull requests

2 participants