Skip to content
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

!!!(Plan): A important status update and future plan with this project #372

Open
wuwentao opened this issue Oct 25, 2024 · 0 comments
Open

Comments

@wuwentao
Copy link
Owner

wuwentao commented Oct 25, 2024

As rokam quit all and not login to Discord, so I post all these info in github and AT all of our team members, also incldue rokam.

@chemelli74 @rokam @Necroneco @Qianli-Ma @attilaersek

0. IMPACT to users

There is NO any impact for this midea_ac_lan project, I'm always active and maintain with it.

(discussion not enable and just use github issue to post it, as issue list is the first priority for most of the users)

1. BACKGROUND

1.1 Why I want to maintain it:

  1. I have 10-20 midea devices and original author not active to maintain it.

  2. no one try to do it for a long time and I just got the info via rokam issue:
    Is this repo dead? georgezhao2010/midea_ac_lan#502 and this Enable GitHub workflows  CyrielRct/midea_ac_lan#11

  3. and I had said in the issue post, I need fullly control with it, so I can add more setting and also can make decision with this project in future, and I also need to take responsibility for this project develop and feature quality.

  4. understand midea device and improve my Python and HA develop skills.

1.2 my goals for this project:

  1. Fix bug as first priority, as it impact all the users and we should keep software and feature stable.

  2. Add new feature for exist device, MUST test with a device owner to confirm it can works as expected.

  3. Add new device support, MUST Test with a device owner and confirm it can works as expected.

  4. improve code quality with testcase once the feature and code is more stable.

  5. work with our team members: this integration supported too many devices, we may need more contributors.

1.3. init changes and team goals

when we start with this project in May, we have 6 contributors have PR merge and release permission, and 4 contributors active on the develop jobs.

after some days, rokam create a lib repo named midea-local for it:
#7

midea-lan/midea-local#9

as it's a part of current project, and rokam help me to improve it, we just need the result and expected all the feature is stable, so we just accept it.

1.4 domain rename discussion:

after some days, we also want to do some jobs with rename the domain in June: #68

unfortunately, we can't migrate exist user data from one domain to another domain in HA, and team members don't got any agreement or discussion with this, just pending.....
so I'm just ignored it.

1.5 continue improve it:

then we finished mypy typing in June, and start to fix github bugs, also try to change some behave in current code logic/flow, try to make it better for future .

unfortunately, no one of us had fully understand the device or code design logic, as the source code logic is very clearly and easy to read, but there is no any source code comments or why the code should works as this logic.

so I'm recommend all of our team members to add the detail source code comments when we change any code or understand why the old code should there, unfortunately, no one follow with this requirement, I just add code comments with what I can do in config_flow.py and midea-local device.py

review_comments1

review_comments2

2. Why we can't got a stable version for a long time

  1. we don't have enough devices to test the code quality: so we can't test the code changes to cover most of the device, you may said we can add unit test, No, unit test only can test exist source code logic and can't test any device feature.

  2. everybody have different ideas: we have 4 contributors, we don't restric any members to do any changes, this maybe the biggest issue and current root cause, so the result is : user A want to got direction A, user B want to got direction B, and user C want to got direction C.

  3. No one can control anything and no one can control the project result, as we can't got a agreement with the code change direction and project goals, even we have code review process, and from the code logic, there is no any error, but in different devices, we will catched more errors.

as most of us not fullly understand all the device feature, we cam understand the source code logic, but not have all the device types to test and confirm the result.

fix_bug_3

fix_bug_4

fix_bug7

3. What's my purpose:

all of us come from different country, and no one can to earn any money with this project, just a hobby, and different users always have differen opinions.

and I am always thinks we are a team, so we must to got a solution in chat group, do more discuss with our team members before we do it.

if it's hard for most of us to got a agreement, anyway, we still have discussion with it, we just can select ignore when we can't agree with something.

finally, we still got a agreement with what we will do(our goals), then we can start to do it and made new progress BEFORE we do it.

For example: a bug FIX soluton, user A may think solution A is good, user B may think soltuon B is good, but we must got a agreement before we commit the changes...

in addition, I'm also understand that this project under my namespace, and contributors think they are helping me to improve it, and they did too many jobs, they don't want to continue work under my namespace now, so it's hard for me to say that I disagree with what they want to do.

4. Current State and Important Changes

yes, we always have different opinions, this is really not a problem, and I just expected we should have a discuss before we do it, then we can got a agreement with our goals, once it done, we can continue move on, especially for most important changes.

so this should be a baisc requirement for all of our team members and I am also follow with it.

From my side: I still think no one of us have fullly understand current midea_ac_lan integration, why we want to work with it? we want to fully unerstand it and develop with it more clearly, there is more question/bug/feature for us to continue improve, so I just start with new feature support with what I can do.

and meet this important changes:

changes

changes2

changes3

changes4

5. Future plan

changes5

changes6

6. Expected

6.1 for develop jobs:

  1. I don't expect this project should have too many developers, even it goes to core, as it covered too many devices types, if developer can't fullly understand the device and code, it's really hard to do some changes, as most of the changes will introduced bugs(we did it more times), someone can did some changes and it should works only for his device, unfortunately, it may not works for all the devices. so we need some develop focus on it, and fullly understand with it, and doing a real code review with his develop experience about the real device, but NOT the soruce code logic, then we can make the software feature and version more stable in future.

  2. we always need source code comments, unfortunately, there is None, it's hard for us or future developer to understand it more clearly without source code comments, we MUST add it if we really want to contribute with it or change it.

  3. our develop members should work together, everybody can have different opinions, but we can discuss it, and try to got a agreement with it BEFORE we do it, especially for most important changes.

6.2 for project users

  1. team members don't want to work under my personal namespace project, we should consider to migrate in future, and we also have plan to rename with midea_lan, we will try to do it in futre.
  2. user can select anyone for it, just match what they expected, it's enough.
  3. midea_ac_lan device history data may not available to midea_lan, still not sure with it, but we will try to do it.

7. This Project

Finally, I will continue manitain this midea_ac_lan BEFORE we finished all jobs or we really can migrate to a new one.
and NOT required to migrate midea_ac_lan to a new URL or new repo now

this is NOT mean I just want to keep this repo or project under my name, we have post our goals too many months ago, our future will be midea_lan, we can continue work with this new one in TEAM or ORG, as we will work it with a new one, so I don't think it will impact to current midea_ac_lan.

if we really finished all, then we can consider to send the detail steps with how to migrate to a new one in future.
so this is why I refuse rokam and don't want to migrate current project, as this is really unnecessary, we just need to work with a new one at the same time, it's enough.
in addition, the main reason is no one have any discussion or notice to me with this most important changes, and I don't have any choice, just be noticed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant