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

RFC: OpenIM engineering design #385

Closed
2 tasks done
cubxxw opened this issue May 11, 2023 · 2 comments
Closed
2 tasks done

RFC: OpenIM engineering design #385

cubxxw opened this issue May 11, 2023 · 2 comments
Assignees
Labels
documentation Categorizes issue or PR as related to documentation. feature Categorizes issue or PR as related to a new feature. RFC Project design proposal
Milestone

Comments

@cubxxw
Copy link
Contributor

cubxxw commented May 11, 2023

RFC: OpenIM engineering design

Problem

Currently, OpenIM lacks a clear and consistent structure, making it difficult for developers to work with and improve. In addition, the GitHub actions workflow needs to be optimized and automated for increased efficiency.

The following order of priority is based on our design goals 🎯

RFC:

Improve Makefile Structure

We propose the following Makefile structure improvements, sorted by priority:

  1. Implement optional copyright check (if not already implemented by actions).
  2. Automatically parse help information for all makefile options.
  3. Ensure consistent behavior, such as enforcing commit guidelines.
  4. Add necessary options, such as unit test coverage (which we care about but currently do not provide).
  5. Add debug information and selective debugging. Also, consider providing options to selectively generate binaries via open_im_cms_api or open_im_msg_gateway to improve compile speed.
  6. Simplify the /Makefile module for readability.
  7. The makefile provides cross-compilation
  8. The Makefile docker-in-docker does not fully support amd/arm

Optimize GitHub Actions Workflow

The following changes will be made to optimize the GitHub Actions workflow:

  1. Provide and automate CHANGELOG management.
  2. Add automation for micro-operations and functionality not currently covered.

Improve Version Control

We propose creating separate versions for openim system information (git information, Go information, etc.) and pkg runtime. We suggest moving the core of openim's commands (especially alpha extensions) to the /internal directory (internal access only) and /pkg directory (allowing for calls). Additionally, we propose supplementing relevant documentation, such as version API and Makefile guidelines.

Tasks

Type Improvement Issues PR Status Priority
Makefile Improve Makefile structure #389 🥇
Directory Design Optimize directory structure #421 🥈
GitHub Actions Optimize actions workflow #468 🥉
Version Control Separate versions for OpenIM system and pkg runtime, move core commands to /internal and /pkg directories, supplement documentation #574
@cubxxw cubxxw added documentation Categorizes issue or PR as related to documentation. feature Categorizes issue or PR as related to a new feature. RFC Project design proposal labels May 11, 2023
@cubxxw cubxxw self-assigned this May 11, 2023
@cubxxw cubxxw added this to the Large refactoring efforts milestone May 25, 2023
@cubxxw cubxxw moved this to In progress in openim-powerful May 25, 2023
@cubxxw cubxxw modified the milestones: v3.1, v3.4 Sep 28, 2023
@kubbot
Copy link
Contributor

kubbot commented Mar 3, 2024

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days.

luhaoling pushed a commit to luhaoling/open-im-server that referenced this issue Mar 5, 2024
@kubbot
Copy link
Contributor

kubbot commented Mar 11, 2024

This issue was closed because it has been stalled for 7 days with no activity.

@kubbot kubbot closed this as not planned Won't fix, can't repro, duplicate, stale Mar 11, 2024
@github-project-automation github-project-automation bot moved this from In progress to Done in openim-powerful Mar 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Categorizes issue or PR as related to documentation. feature Categorizes issue or PR as related to a new feature. RFC Project design proposal
Projects
Status: Done
Development

No branches or pull requests

2 participants