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

refactor: project restruct phase2 #311

Merged
merged 67 commits into from
Jun 5, 2024
Merged

Conversation

Bodong-Yang
Copy link
Member

@Bodong-Yang Bodong-Yang commented Jun 3, 2024

Introduction

Project restruct phase2, in this phase most of the changes are restructring the packages to make the project more modularized and decoupling each components as much as possible.

Major changes

The following changes are applied:

  1. ota_metadata becomes a standalone package, current implementation is treated as the implementation for OTA image format legacy version.
  2. create new otaclient_api, current version is v2 and all the protobuf pb2 generated code and proto wrappers are grouped under v2.
  3. create new otaclient_common, all common shared libs, helper funcs and types are grouped under this package, categorized by functionality.
  4. fix according to import paths changes.
  5. restruct tests according to the new project layout.

Other changes

  1. cleanup bootstrap, refactor into samples, which provide sample ecu_info.yaml, proxy_info.yaml and otaclient.service for single ECU setup.
  2. fix up tools/offline_ota_image_builder and status_monitor package.
  3. not use relative imports anymore.

Tests

Tests are executed on VM(x86_64 with grub).

Copy link
Contributor

github-actions bot commented Jun 3, 2024

Coverage

Coverage Report
FileStmtsMissCoverMissing
src/ota_metadata/legacy
   __init__.py110100% 
   parser.py3223290%142, 147, 183–184, 194–195, 198, 210, 268, 278–281, 320–323, 403, 406, 414–416, 429, 438–439, 442–443, 731–732, 735–736, 739
   types.py841384%37, 40–42, 112–116, 122–125
src/ota_proxy
   __init__.py361072%59, 61, 63, 72, 81–82, 102, 104–106
   __main__.py770%16–18, 20, 22–23, 25
   _consts.py150100% 
   cache_control.py68494%71, 91, 113, 121
   config.py180100% 
   db.py1461589%75, 81, 103, 113, 116, 145–147, 166, 199, 208–209, 229, 258, 300
   errors.py50100% 
   orm.py1121091%92, 97, 102, 108, 114, 141–142, 155, 232, 236
   ota_cache.py4018678%98–99, 218, 229, 256–258, 278, 294–295, 297, 320–321, 327, 331, 333, 360–362, 378, 439–440, 482–483, 553, 566–569, 619, 638–639, 671–672, 683, 717–721, 725–727, 729, 731–738, 740–742, 745–746, 750–751, 755, 802, 810–812, 891–894, 898, 901–902, 916–917, 919–921, 925–926, 932–933, 964, 970, 997, 1026–1028
   server_app.py1383971%76, 79, 85, 101, 103, 162, 171, 213–214, 216–218, 221, 226–228, 231–232, 235, 238, 241, 244, 257–258, 261–262, 264, 267, 293–296, 299, 313–315, 321–323
   utils.py23195%33
src/otaclient
   __init__.py5260%17, 19
   __main__.py110%16
src/otaclient/app
   __main__.py110%16
   configs.py750100% 
   errors.py1120100% 
   interface.py50100% 
   log_setting.py53590%54, 56, 65–67
   main.py46589%52–53, 75–77
   ota_client.py39813765%67, 75, 96, 204–205, 218, 221, 225, 228, 265–268, 280–283, 286–287, 291–296, 306–309, 314–315, 317, 326, 329, 334–335, 338, 344, 346, 349, 391–394, 399, 403, 406, 422–425, 428–435, 438–445, 451–454, 483, 486–487, 489, 492–495, 497–498, 503–504, 507, 521–528, 535, 538–544, 591–594, 602, 638, 643–646, 651–653, 656–657, 659–660, 662–663, 665, 725–726, 729, 737–738, 741, 752–753, 756, 764–765, 768, 779, 798, 825, 844, 862
   ota_client_stub.py39410972%76–78, 80–81, 89–92, 95–97, 101, 106–107, 109–110, 113, 115–116, 119–121, 124–125, 128–130, 135–140, 144, 147–151, 153–154, 162–164, 167, 204–206, 211, 247, 272, 275, 278, 382, 406, 408, 432, 478, 535, 605–606, 645, 664–666, 672–675, 679–681, 688–690, 693, 697–700, 753, 842–844, 851, 881–882, 885–889, 898–907, 914, 920, 923–924, 928, 931
   update_stats.py106298%162, 172
src/otaclient/app/boot_control
   __init__.py40100% 
   _common.py2337667%73–74, 95–97, 113–114, 134–135, 154–155, 174–175, 194–195, 210–211, 232, 240, 258, 266, 285–286, 289–290, 313, 315–324, 326–335, 337–339, 358, 361, 369, 377, 393–395, 397–402, 495, 500, 505, 618, 622–623, 626, 634, 636–637, 711–712, 722, 740
   _grub.py41712869%216, 264–267, 273–277, 314–315, 322–327, 330–336, 339, 342–343, 348, 350–352, 361–367, 369–370, 372–374, 383–385, 387–389, 468–469, 473–474, 526, 532, 558, 580, 584–585, 600–602, 626–629, 641, 645–647, 649–651, 710–713, 738–741, 764–767, 779–780, 783–784, 819, 825, 845–846, 848, 860, 863, 866, 869, 873–875, 893–896, 924–927, 932–940, 945–953
   _jetson_cboot.py27121421%72–73, 80–81, 99–108, 120, 127–128, 140, 146–147, 157–159, 171–172, 183–184, 187–188, 191–192, 195–199, 202–203, 207–208, 213–214, 216–220, 222–228, 230–231, 236, 239, 242–243, 246, 250–251, 255–256, 260, 263, 266, 270–276, 278–280, 285, 288, 291, 295, 302, 304–307, 320, 323, 327, 329–331, 335, 342, 344, 347, 353–354, 359, 367, 375–377, 386–387, 389–391, 397, 400–402, 406–407, 409, 412, 421–423, 426, 429, 432–437, 439–441, 444, 447, 451–456, 460–462, 467–468, 472–473, 476, 479, 482–483, 486, 489, 494, 497, 500–501, 503, 505, 508, 511, 513–514, 517–521, 526–527, 529, 537–541, 543, 546, 549, 560–561, 566, 576, 579–587, 592–600, 605–613, 619–621, 624, 627
   _jetson_common.py1416653%50, 74, 129–134, 136, 141–143, 148–151, 159–160, 167–168, 173–174, 190–191, 193–195, 198–200, 203, 207, 211, 215–217, 223–224, 226, 259, 285–286, 288–290, 294–297, 299–300, 302–306, 308, 315–316, 319, 321, 331, 334–335, 338, 340
   _rpi_boot.py25812252%88–90, 96–97, 99–101, 103, 106–107, 112–113, 122–123, 127, 129, 133, 137–140, 145–147, 151–154, 178–180, 186–188, 201–203, 209–211, 224–231, 233, 237–239, 242–245, 248–249, 254, 258, 262, 266, 300, 327–329, 339–342, 346–352, 392–394, 436–440, 459–462, 467, 470, 494–497, 502–510, 515–523, 537–540, 546–548, 551
   configs.py460100% 
   protocol.py40100% 
   selecter.py382631%44–46, 49–50, 54–55, 58–60, 63, 65, 69, 77–79, 81–82, 84–85, 89, 91–93, 95, 97
src/otaclient/app/create_standby
   __init__.py12558%28–30, 32, 34
   common.py2194380%63, 66–67, 71–73, 75, 79–80, 82, 128, 176–178, 180–182, 184, 187–190, 194, 205, 279–280, 282–287, 300, 355, 358–360, 376–377, 391, 395, 417–418
   interface.py50100% 
   rebuild_mode.py90198%105
src/otaclient/configs
   _common.py80100% 
   ecu_info.py57198%107
   proxy_info.py52296%88, 90
src/otaclient_api/v2
   __init__.py140100% 
   api_caller.py39684%45–47, 83–85
   api_stub.py170100% 
   types.py2562391%86, 89–92, 131, 209–210, 212, 259, 262–263, 506–508, 512–513, 515, 518–519, 522–523, 586
src/otaclient_common
   __init__.py34876%42–44, 59, 61, 67, 74–75
   common.py1581987%44, 126, 232, 235–237, 252, 259–261, 327–329, 339, 348–350, 396, 400
   downloader.py2694483%72, 85–86, 301, 306, 310, 328–329, 379–383, 402–404, 407–408, 411–412, 433–436, 440–441, 445–446, 450–451, 460, 535–537, 553, 573–575, 579, 581, 584, 589–591
   linux.py471176%45–47, 53, 63, 68, 70, 102–103, 127–128
   logging.py29196%55
   persist_file_handling.py1131884%112, 114, 146–148, 150, 176–179, 184, 188–192, 218–219
   proto_streamer.py42880%33, 48, 66–67, 72, 81–82, 100
   proto_wrapper.py3984588%87, 165, 172, 184–186, 205, 210, 221, 257, 263, 268, 299, 303, 307, 402, 462, 469, 472, 492, 499, 501, 526, 532, 535, 537, 562, 568, 571, 573, 605, 609, 611, 625, 642, 669, 672, 676, 707, 713, 760–763, 765
   retry_task_map.py123298%129, 141
   typing.py250100% 
TOTAL6001134877% 

Tests Skipped Failures Errors Time
179 0 💤 0 ❌ 0 🔥 4m 54s ⏱️

@Bodong-Yang Bodong-Yang added the refactor Rewrite/remove related code instead of patching them label Jun 3, 2024
@Bodong-Yang Bodong-Yang marked this pull request as ready for review June 4, 2024 09:11
@Bodong-Yang Bodong-Yang self-assigned this Jun 5, 2024
@Bodong-Yang Bodong-Yang merged commit bfa3bb5 into main Jun 5, 2024
4 checks passed
@Bodong-Yang Bodong-Yang deleted the refactor/project_restruct_phase2 branch June 5, 2024 10:16
Bodong-Yang added a commit that referenced this pull request Jun 5, 2024
commit bfa3bb5
Author: Bodong Yang <[email protected]>
Date:   Wed Jun 5 19:16:32 2024 +0900

    refactor: project restruct phase2 (#311)

    Project restruct phase2, in this phase most of the changes are restructring the packages to make the project more modularized and decoupling each components as much as possible.
    1. ota_metadata becomes a standalone package, current implementation is treated as the implementation for OTA image format legacy version.
    2. create new otaclient_api, current version is v2 and all the protobuf pb2 generated code and proto wrappers are grouped under v2.
    3. create new otaclient_common, all common shared libs, helper funcs and types are grouped under this package, categorized by functionality.
    4. fix according to import paths changes.
    5. restruct tests according to the new project layout.
    1. cleanup bootstrap, refactor into samples, which provide sample ecu_info.yaml, proxy_info.yaml and otaclient.service for single ECU setup.
    2. fix up tools/offline_ota_image_builder and status_monitor package.
    3. not use relative imports anymore.

commit 9f975ad
Author: Bodong Yang <[email protected]>
Date:   Tue Jun 4 17:12:05 2024 +0900

    chore(tools): remove out-of-date unmaintained tools (#313)

    This PR removes the unmaintained old tools, including tools.emulator, tools.test_utils and tools/build_image.sh.

commit 0ce3cc9
Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date:   Tue Jun 4 16:32:45 2024 +0900

    [pre-commit.ci] pre-commit autoupdate (#312)

    * [pre-commit.ci] pre-commit autoupdate

    updates:
    - [github.com/tox-dev/pyproject-fmt: 1.8.0 → 2.1.3](tox-dev/pyproject-fmt@1.8.0...2.1.3)
    - [github.com/igorshubovych/markdownlint-cli: v0.40.0 → v0.41.0](igorshubovych/markdownlint-cli@v0.40.0...v0.41.0)

    * [pre-commit.ci] auto fixes from pre-commit.com hooks

    for more information, see https://pre-commit.ci

    ---------

    Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
@Bodong-Yang Bodong-Yang mentioned this pull request Aug 8, 2024
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactor Rewrite/remove related code instead of patching them
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant