CN117113101A - Processing method and device of open source assembly, electronic equipment and storage medium - Google Patents

Processing method and device of open source assembly, electronic equipment and storage medium Download PDF

Info

Publication number
CN117113101A
CN117113101A CN202311110467.7A CN202311110467A CN117113101A CN 117113101 A CN117113101 A CN 117113101A CN 202311110467 A CN202311110467 A CN 202311110467A CN 117113101 A CN117113101 A CN 117113101A
Authority
CN
China
Prior art keywords
open source
developer
core
component
source component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311110467.7A
Other languages
Chinese (zh)
Inventor
徐帅健妮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Telecom Technology Innovation Center
China Telecom Corp Ltd
Original Assignee
China Telecom Technology Innovation Center
China Telecom Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Telecom Technology Innovation Center, China Telecom Corp Ltd filed Critical China Telecom Technology Innovation Center
Priority to CN202311110467.7A priority Critical patent/CN117113101A/en
Publication of CN117113101A publication Critical patent/CN117113101A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

The present invention relates to the field of computer technologies, and in particular, to a method and an apparatus for processing an open source component, an electronic device, and a storage medium. The method comprises the following steps: receiving an open source item to be processed; the open source project comprises a plurality of open source components; performing core developer judgment processing on the plurality of open source components, and respectively determining a core developer corresponding to each open source component; based on a preset webpage ranking Pagerank algorithm and a core developer corresponding to each open source component, carrying out analysis component centrality judgment processing on each open source component to obtain a target core open source component; the analysis component centrality judgment process is used for comprehensively scoring the core developer and the dependency relationship corresponding to the open source component and screening out the target core open source component with the comprehensive score meeting the condition. In this way, the target core open source component of the open source project can be accurately determined through the refinement analysis and processing of the core developer and the dependency relationship in each open source component.

Description

Processing method and device of open source assembly, electronic equipment and storage medium
Technical Field
The embodiment of the invention relates to the technical field of computers, in particular to a processing method and device of an open source component, electronic equipment and a storage medium.
Background
The widely used components of the open source components, i.e. the open source components with high centrality, may be referred to as core open source components, for example: junit, requests, mocha, etc.
The core open source component is a serious problem of the whole open source project, and if the core open source component cannot be accurately and efficiently determined, the core open source component can be not maintained in place, so that the subsequent whole project is affected.
Therefore, how to accurately and efficiently determine the core open source component is a problem to be solved.
Disclosure of Invention
The embodiment of the invention aims to provide a processing method and device of an open source component, electronic equipment and a storage medium, which are used for providing a scheme for determining a core open source component.
In a first aspect, an embodiment of the present invention provides a method for processing an open source component, where the method includes:
receiving an open source item to be processed; the open source project comprises a plurality of open source components;
performing core developer judgment processing on the plurality of open source components, and respectively determining a core developer corresponding to each open source component;
Based on a preset webpage ranking Pagerank algorithm and a core developer corresponding to each open source component, carrying out analysis component centrality judgment processing on each open source component to obtain a target core open source component; and the analysis component centrality judgment process is used for comprehensively scoring the core developer and the dependency relationship corresponding to the open source component and screening out the target core open source component with the comprehensive score meeting the condition.
In one possible implementation manner, performing a core developer determination process on the plurality of open source components, and determining a core developer corresponding to each open source component respectively includes:
for each open source component, the following operations are respectively performed:
cleaning the open source assembly to obtain at least one source file corresponding to the open source assembly;
analyzing the historical submission record of the open source component to obtain all developer information of the open source component;
determining the file-level contribution degree of each developer to the at least one source file according to a preset developer contribution degree rule, a component update log corresponding to the open source component, the at least one source file and all developer information;
Determining a core developer corresponding to the open source component according to the file-level contribution degree of each developer to the at least one source file; and the contribution degree of the core developer corresponding to the open source component to the creation and updating of a plurality of source files in the open source component is highest.
In one possible embodiment, the method further comprises:
determining each data pair in the history commit record; each data pair comprises mailbox information and user identification information;
if the mailbox information in the first data pair and the second data pair are the same, determining that the first data pair and the second data pair point to the same developer, and combining the first data pair and the second data pair into one data pair as one piece of developer information;
if the Lewenstein distance between the third data pair and the fourth data pair is smaller than the first threshold value, determining that the third data pair and the fourth data pair point to the same developer, and combining the third data pair and the fourth data pair into one data pair to serve as one piece of developer information.
In a possible implementation manner, the preset developer contribution rule is obtained based on the following formula:
DA(m d ,f p )=α+β×FA(m d ,f p )+γ×DL(m d ,f p )-δ×ln(1+AC(m d ,f p ))
Wherein m is d For characterizing developer, f p For characterizing source textPiece, α, β, γ, δ are used to characterize weights, FA is used to characterize developer m d Creating a source file f p Is used to characterize developer m d For source file f p DL is used to characterize developer m d For source file f p AC is used to characterize divide developer m d Other developers than the source file f p Is a total number of updates.
In one possible implementation manner, determining the core developer corresponding to the open source component according to the file-level contribution degree of each developer to the at least one source file includes:
taking all developers with highest file-level contribution degree in all developers corresponding to each source file as sub-core developers corresponding to each source file;
and taking the sub-core developer with the largest number of corresponding source files as the core developer corresponding to the open source component.
In one possible implementation manner, based on a preset webpage ranking Pagerank algorithm and a core developer corresponding to each open source component, performing analysis component centrality determination processing on each open source component to obtain a target core open source component, including:
acquiring dependency data from a packet manager, and constructing a corresponding netlike dependency relationship map among open source components based on the dependency data; the packet manager stores dependency data of each open source component, wherein the dependency data is used for indicating the dependency relationship among the open source components;
Deleting all open source components which are never called by other components in the open source project according to the netlike dependency graph to obtain candidate open source components; calculating the scoring value of each candidate open source component based on the Pagerank algorithm;
and determining a target core open source component according to the candidate open source components with the score values larger than a second threshold value, which are screened out of the candidate open source components.
In a possible implementation manner, determining the target core open source component according to the candidate open source components with the score values greater than the second threshold value, where the candidate open source components are screened out, includes:
respectively determining core factors and scoring values corresponding to candidate open source components with each scoring value larger than the second threshold value; wherein the core factor is determined based on a number of child core developers for which a number of corresponding source files is greater than a third threshold;
and if the core factor corresponding to the first candidate open source component is determined to be smaller than a fourth threshold value, and the scoring value corresponding to the first candidate open source component is determined to be larger than a fifth threshold value, the first candidate open source component is taken as a target core open source component.
In a second aspect, an embodiment of the present invention provides a processing apparatus for an open source component, where the apparatus includes:
The receiving unit is used for receiving the open source item to be processed; the open source project comprises a plurality of open source components;
the determining unit is used for performing core developer judgment processing on the plurality of open source components and respectively determining core developers corresponding to the open source components;
the acquisition unit is used for carrying out analysis component centrality judgment processing on each open source component based on a preset webpage ranking Pagerank algorithm and a core developer corresponding to each open source component to acquire a target core open source component; and the analysis component centrality judgment process is used for comprehensively scoring the core developer and the dependency relationship corresponding to the open source component and screening out the target core open source component with the comprehensive score meeting the condition.
In a possible embodiment, the determining unit is specifically configured to:
for each open source component, the following operations are respectively performed:
cleaning the open source assembly to obtain at least one source file corresponding to the open source assembly;
analyzing the historical submission record of the open source component to obtain all developer information of the open source component;
determining the file-level contribution degree of each developer to the at least one source file according to a preset developer contribution degree rule, a component update log corresponding to the open source component, the at least one source file and all developer information;
Determining a core developer corresponding to the open source component according to the file-level contribution degree of each developer to the at least one source file; and the contribution degree of the core developer corresponding to the open source component to the creation and updating of a plurality of source files in the open source component is highest.
In a possible embodiment, the apparatus further comprises a processing unit for:
determining each data pair in the history commit record; each data pair comprises mailbox information and user identification information;
if the mailbox information in the first data pair and the second data pair are the same, determining that the first data pair and the second data pair point to the same developer, and combining the first data pair and the second data pair into one data pair as one piece of developer information;
if the Lewenstein distance between the third data pair and the fourth data pair is smaller than the first threshold value, determining that the third data pair and the fourth data pair point to the same developer, and combining the third data pair and the fourth data pair into one data pair to serve as one piece of developer information.
In a possible implementation manner, the preset developer contribution rule is obtained based on the following formula:
DA(m d ,f p )=α+β×FA(m d ,f p )+γ×DL(m d ,f p )-δ×ln(1+AC(m d ,f p ))
Wherein m is d For characterizing developer, f p For characterizing source files, α, β, γ, δ for characterizing weights, FA for characterizing developer m d Creating a source file f p Is used to characterize developer m d For source file f p DL is used to characterize developer m d For source file f p AC is used to characterize divide developer m d Other developers than the source file f p Is a total number of updates.
In a possible embodiment, the determining unit is specifically configured to:
taking all developers with highest file-level contribution degree in all developers corresponding to each source file as sub-core developers corresponding to each source file;
and taking the sub-core developer with the largest number of corresponding source files as the core developer corresponding to the open source component.
In a possible embodiment, the obtaining unit is specifically configured to:
acquiring dependency data from a packet manager, and constructing a corresponding netlike dependency relationship map among open source components based on the dependency data; the packet manager stores dependency data of each open source component, wherein the dependency data is used for indicating the dependency relationship among the open source components;
deleting all open source components which are never called by other components in the open source project according to the mesh dependency graph to obtain candidate open source components; calculating the scoring value of each candidate open source component based on the Pagerank algorithm;
And determining a target core open source component according to the candidate open source components with the score values larger than a second threshold value, which are screened out of the candidate open source components.
In a possible embodiment, the obtaining unit is further configured to:
respectively determining core factors and scoring values corresponding to candidate open source components with each scoring value larger than the second threshold value; wherein the core factor is determined based on a number of child core developers for which a number of corresponding source files is greater than a third threshold;
and if the core factor corresponding to the first candidate open source component is determined to be smaller than a fourth threshold value, and the scoring value corresponding to the first candidate open source component is determined to be larger than a fifth threshold value, the first candidate open source component is taken as a target core open source component.
In a third aspect, an embodiment of the present invention provides an electronic device, including at least one processor; and a memory communicatively coupled to the at least one processor; wherein the memory stores instructions executable by the at least one processor to enable the at least one processor to perform any one of the methods provided by the embodiments of the first aspect of the present invention.
In a fourth aspect, embodiments of the present invention provide a computer storage medium, where the computer readable storage medium stores a computer program for causing a computer to perform any of the methods provided by the embodiments of the first aspect of the present invention.
In a fifth aspect, embodiments of the present invention provide a computer program product comprising: computer program code which, when run on a computer, causes the computer to perform any of the methods provided by the embodiments of the first aspect.
The invention has the following beneficial effects:
in the embodiment of the invention, the open source item to be processed can be received; the open source project comprises a plurality of open source components; performing core developer judgment processing on the plurality of open source components, and respectively determining a core developer corresponding to each open source component; based on a preset webpage ranking Pagerank algorithm and a core developer corresponding to each open source component, carrying out analysis component centrality judgment processing on each open source component to obtain a target core open source component; the analysis component centrality judgment process is used for comprehensively scoring the core developer and the dependency relationship corresponding to the open source component and screening out the target core open source component with the comprehensive score meeting the condition. Therefore, through comprehensively scoring the core developers and the dependency relations corresponding to the open source components, the target core open source components which belong to high centrality and have low core developer quantity can be screened out, and the accuracy of determining the core open source components is improved.
Additional features and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The objectives and other advantages of the invention will be realized and attained by the structure particularly pointed out in the written description and claims thereof as well as the appended drawings.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings that are needed in the embodiments of the present invention will be briefly described below, and it is obvious that the drawings described below are only some embodiments of the present invention, and other drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
Fig. 1 is a schematic diagram of an application scenario in an embodiment of the present invention;
FIG. 2 is a flow chart of a processing method of an open source component according to an embodiment of the present invention;
FIG. 3 is a schematic diagram of a processing apparatus with an open source assembly according to an embodiment of the present invention;
fig. 4 is a schematic diagram of a hardware composition structure of an electronic device according to an embodiment of the present invention.
Detailed Description
For the purpose of making the objects, technical solutions and advantages of the present invention more apparent, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention, and it is apparent that the described embodiments are only some embodiments of the present invention, not all embodiments of the present invention. All other embodiments, which can be made by those skilled in the art based on the embodiments of the invention without making any inventive effort, are intended to be within the scope of the invention. Embodiments of the invention and features of the embodiments may be combined with one another arbitrarily without conflict. Also, while a logical order is depicted in the flowchart, in some cases, the steps depicted or described may be performed in a different order than presented herein.
The term "comprising" and any variations thereof in the description of the invention and in the claims is intended to cover non-exclusive protection. For example, a process, method, system, article, or apparatus that comprises a list of steps or elements is not limited to only those listed steps or elements but may include other steps or elements not listed or inherent to such process, method, article, or apparatus.
In the embodiments of the present invention, "at least one" means one or more, and "a plurality" means two or more. "and/or", describes an association relationship of associated objects, for characterizing that there may be three relationships, e.g., a and/or B, may be used to characterize: a alone, a and B together, and B alone, wherein a, B may be singular or plural. The character "/" is generally used to characterize a relationship in which the associated object is an "or". "at least one of" or the like means any combination of these items, including any combination of single item(s) or plural items(s). For example, at least one (one) of a, b or c may be used to characterize: a, b, c, a-b, a-c, b-c, or a-b-c, wherein a, b, c may be single or plural.
And, unless otherwise indicated, the terms "first," "second," and the like according to the embodiments of the present invention are used for distinguishing a plurality of objects, and are not used for limiting the size, content, order, timing, priority, importance, or the like of the plurality of objects. For example, the first source file and the second source file are merely for distinguishing source files, and are not used to characterize the difference in content, size, priority, importance, etc. of the two source files.
In the technical scheme of the invention, the data is collected, transmitted, used and the like, and all meet the requirements of national relevant laws and regulations.
Currently, as described above, the core open source component is a serious issue of the whole open source project, and if the core open source component cannot be accurately and efficiently determined, the maintenance of the core open source component may not be in place, which may cause the subsequent influence on the whole project. Therefore, how to accurately and efficiently determine the core open source component is a problem to be solved.
In view of the above, the present invention provides a processing method of an open source component, by which an open source item to be processed can be received; the open source project comprises a plurality of open source components; performing core developer judgment processing on the plurality of open source components, and respectively determining a core developer corresponding to each open source component; based on a preset webpage ranking Pagerank algorithm and a core developer corresponding to each open source component, carrying out analysis component centrality judgment processing on each open source component to obtain a target core open source component; the analysis component centrality judgment process is used for comprehensively scoring the core developer and the dependency relationship corresponding to the open source component and screening out the target core open source component with the comprehensive score meeting the condition. Therefore, through comprehensively scoring the core developers and the dependency relations corresponding to the open source components, the target core open source components which belong to high centrality and have low core developer quantity can be screened out, and the accuracy of determining the core open source components is improved.
After the design idea of the embodiment of the present invention is introduced, some simple descriptions are made below for application scenarios applicable to the technical solution of the embodiment of the present invention, and it should be noted that the application scenarios described below are only used for illustrating the embodiment of the present invention and are not limiting. In the specific implementation process, the technical scheme provided by the embodiment of the invention can be flexibly applied according to actual needs.
The scheme provided by the embodiment of the invention can be suitable for application scenes of various actual business projects created based on open source components.
Referring to fig. 1, a schematic view of a scenario provided in an embodiment of the present invention may include a plurality of terminal devices 101 and a server 102, where processing platforms may be deployed on the terminal devices 101-1, 101-2, … …, and 101-n, and each terminal device is provided with a respective processing platform.
In the embodiment of the present invention, when a business person using the terminal device 101 wants to know a core developer in an open source project to better maintain the open source project, the open source project to be processed may be sent to the server 102 through a processing platform deployed on the terminal device 101, where the open source project includes a plurality of open source components, and each open source component includes a plurality of source files. Then, the processing platform of the open source component deployed in the server 102 processes the open source project to be processed, determines the core developer corresponding to the open source project, and feeds back the core developer to the terminal device 101, so that service personnel can better formulate maintenance arrangement and planning of the open source project, and loss of the open source project and service implemented based on the open source project caused by incapability of maintaining the core developer is avoided.
In the embodiment of the present invention, the terminal device 101 may be, for example, a mobile phone, a tablet personal computer (PAD), a personal computer (Personal computer, PC), an intelligent television, an intelligent vehicle-mounted device, a wearable device, or the like, which is not limited in the embodiment of the present invention.
In the embodiment of the present invention, the server 102 may be a cloud server for providing cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content delivery networks (Content Delivery Network, CDN), and basic cloud computing services such as big data and artificial intelligence platforms, or may be a physical server, but is not limited thereto.
Wherein, the terminal equipment 101 and the server 102, and the terminal equipment 101 can be directly or indirectly connected through one or more networks 103. The network 103 may be a wired network, or may be a Wireless network, for example, a mobile cellular network, or may be a Wireless-Fidelity (WIFI) network, or may be other possible networks, which are not limited in this embodiment of the present invention.
Of course, the method provided by the embodiment of the present invention is not limited to the application scenario shown in fig. 1, but may be used in other possible application scenarios, for example, application scenarios where multiple terminal devices interact with multiple servers, and the embodiment of the present invention is not limited. The functions that can be implemented by each device in the application scenario shown in fig. 1 will be described together in the following method embodiments, which are not described in detail herein.
In order to further explain the technical solution provided by the embodiments of the present invention, the following details are described with reference to the accompanying drawings and the detailed description. Although embodiments of the present invention provide the method operational steps shown in the following embodiments or figures, more or fewer operational steps may be included in the method, either on a routine or non-inventive basis. In steps where there is logically no necessary causal relationship, the execution order of the steps is not limited to the execution order provided by the embodiments of the present invention. The methods may be performed sequentially or in parallel as shown in the embodiments or the drawings when the actual processing or the apparatus is performed.
Referring to fig. 2, fig. 2 is a flow chart illustrating a processing method of an open source component according to an embodiment of the invention. The flow of the method may be performed by an electronic device, which may be the server in fig. 1, and the specific implementation flow of the method is as follows:
Step 201: receiving an open source item to be processed; the open source project includes a plurality of open source components.
Step 202: and carrying out core developer judgment processing on the plurality of open source components, and respectively determining the core developer corresponding to each open source component.
In the embodiment of the invention, after the electronic device receives the open source project to be processed, the core developer judging process can be performed on the plurality of open source components included in the open source project, and the core developer corresponding to each open source component is respectively determined.
In the embodiment of the invention, the electronic device can execute the following operations for each open source component:
step a: and cleaning the open source assembly to obtain at least one source file corresponding to the open source assembly.
In the embodiment of the invention, the electronic equipment can clean all libraries, codes, frames and the like from a third party in the open source assembly by utilizing tools such as software component analysis, code traceability analysis and the like, and only the source files finished by the developer of the open source assembly are reserved, so that at least one source file corresponding to the open source assembly is obtained.
Step b: and analyzing the historical submission record of the open source component to obtain all developer information of the open source component.
For example, the open source item is a software item hosting platform (gilthub), and the history submission record (Commits) of the open source item can be obtained, so that all developer information of the open source component can be obtained.
In one possible implementation, to filter duplicate developers, duplicate developer information may be determined and combined into one developer information in the following manner, but is not limited to. In this way, the situation that a developer is judged to be a plurality of developers because the developer uses different accounts to create the open source component can be avoided, so that the judgment of the core degree of the developer in the open source project is reduced, and the accuracy of judging the core developer is improved.
Mode one:
in the embodiment of the invention, the electronic equipment can determine each data pair in the history submission record; each data pair comprises mailbox information and user identification information; if the mailbox information of the first data pair and the second data pair are the same, determining that the first data pair and the second data pair point to the same developer, and combining the first data pair and the second data pair into one data pair to serve as one piece of developer information.
Mode two:
in the embodiment of the invention, the electronic equipment can determine each data pair in the history submission record; each data pair comprises mailbox information and user identification information; if the Lewenstein distance between the third data pair and the fourth data pair is smaller than the first threshold value, determining that the third data pair and the fourth data pair point to the same developer, and combining the third data pair and the fourth data pair into one data pair to serve as one piece of developer information. The first threshold is, for example, 4, but may be any other value, which is not limited in the embodiment of the present invention.
Wherein, the lywenstein (Levenshtein) distance can be determined by the following formula:
wherein,for the indication function, when the i-th character of the third data pair a and the j-th character of the fourth data pair b are different, the value thereof is 1; otherwise, 0.
That is, in the embodiment of the present invention, mailbox information in data pairs or identification information of a user may be respectively identified, and as long as one item is repeated, two data pairs may be considered to be repeated; or when the Lewenstein distance is smaller than the first threshold value, the two data pairs are considered to have smaller distance and higher similarity, so that the two data pairs are considered to be possibly the same developer, the two data pairs are considered to be repeated data pairs, and therefore the repeated data pairs are combined into one data pair, and the accuracy of the decision core developer is improved.
Step c: and determining the file-level contribution degree of each developer to at least one source file according to a preset developer contribution degree rule, a component update log corresponding to the open source component, at least one source file and all developer information.
In the embodiment of the invention, the preset developer contribution degree rule is obtained based on the following formula:
DA(m d ,f p )=α+β×FA(m d ,f p )+γ×DL(m d ,f p )-δ×ln(1+AC(m d ,f p ))
wherein m is d For characterizing developer, f p For characterizing source files, α, β, γ, δ for characterizing weights, FA for characterizing developer m d Creating a source file f p Is used to characterize developer m d For source file f p DL is used to characterize developer m d For source file f p AC is used to characterize divide developer m d Other developers than the source file f p Is a total number of updates. Alternatively, α=3.3, β=1.0, γ=0.2, and δ=0.3 may be set.
Step d: determining a core developer corresponding to the open source component according to the file-level contribution degree of each developer to at least one source file; the contribution degree of the core developer corresponding to the open source component to the creation and updating of a plurality of source files in the open source component is highest.
In the embodiment of the invention, the electronic equipment can take the developer with the highest file-level contribution degree in all developers corresponding to each source file as the sub-core developer corresponding to each source file; and taking the sub-core developer with the largest number of corresponding source files as the core developer corresponding to the open source component.
Step 203: based on a preset webpage ranking Pagerank algorithm and a core developer corresponding to each open source component, carrying out analysis component centrality judgment processing on each open source component to obtain a target core open source component; the analysis component centrality judgment process is used for comprehensively scoring the core developer and the dependency relationship corresponding to the open source component and screening out the target core open source component with the comprehensive score meeting the condition.
In the embodiment of the invention, the electronic equipment can acquire the dependency data from the packet manager and construct a corresponding netlike dependency relationship map among the open source components based on the dependency data; the package manager stores dependency data of each open source component, and the dependency data is used for indicating dependency relations among the open source components. The packet manager is Maven, npm, pypi, for example. Optionally, the electronic device may construct a "component-dependent-component" triplet between open source components, and components and their related attributes based on the dependency data, where the components are coupled to each other by a dependency relationship to form a mesh dependency relationship graph for each language software supply chain. Further, according to the net dependency graph, deleting all open source components which are never called by other components in the open source components, and obtaining candidate open source components. Then, calculating the scoring value of each candidate open source component based on the Pagerank algorithm; and determining the target core open source assembly according to the candidate open source assemblies with the scoring values larger than the second threshold value, which are screened out of the candidate open source assemblies.
Based on a preset webpage ranking Pagerank algorithm, the component centrality of the open source component A is mainly determined based on the following formula:
where PR () represents the centrality of an open source component, T 1 ...T n Is a component dependent on component A; d is a damping coefficient, typically set between 0 and 1, typically set at 0.85; c () represents the total number of other components that a certain open source component depends on.
In the specific implementation process, the Neo4j database can be used for storing the net-shaped dependency relationship graph of the open source components, and the centrality score of each open source component can be obtained by directly calling the realization of the pagerank algorithm in the Neo4j Graph Data Science Library database, namely the score value.
In the embodiment of the invention, the electronic equipment can respectively determine the core factors and the scoring values corresponding to the candidate open source components with each scoring value larger than the second threshold value; wherein the core factor is determined based on a number of child core developers for which a number of corresponding source files is greater than a third threshold; and if the core factor corresponding to the first candidate open source component is determined to be smaller than the fourth threshold value, and the scoring value corresponding to the first candidate open source component is determined to be larger than the fifth threshold value, the first candidate open source component is taken as the target core open source component. Wherein the fourth threshold and the fifth threshold are correspondingly determined based on the core factors and the distribution of the scoring values of the current open source components.
For example, taking the most commonly used unit test framework element junit in java as an example, the score value of the unit test framework element junit is equal to 2974, which is far greater than the fifth threshold=10, and the core factor of the unit test framework element junit is equal to 3, which is smaller than the fourth threshold=4, so the unit test framework element junit is determined as the core open source element.
Alternatively, the electronic device may employ a preset greedy algorithm to evaluate the number of core developers of the open source component, thereby determining a core factor, e.g., referred to as a training factor. The preset greedy algorithm can be understood as follows: after the electronic device obtains the core developer of each source file, the number of times each core developer can be counted is determined to be the core developer of the source file. And determining the ordering order of the core developers according to the times. Further, the electronic device may determine a set of source files, e.g., referred to as a coverage set, that may be deleted by the developer with the greatest number of times. In particular, all source files in the current open source component may be traversed, and if a source file has not been removed from the coverage set by a core developer after the developer has been deleted. And continuing to execute the steps until the value of the source file in the coverage set is smaller than a third threshold value, stopping executing the steps, and taking the number of the currently deleted developers as a core factor. The third threshold may be, for example, 0.5, or other values, which are not limited in the embodiment of the present invention.
For example, assuming that the open source component includes 6 source files, i.e., source file a, source file B, source file C, source file D, source file E, and source file F, respectively, the core developer of source file a, source file C, and source file D is developer 1, the core developer of source file B is developer 2, and the core developer of source file E, and source file F is developer 3, it may be determined that the number of times developer 1 is the core developer, the number of times developer 2 is the core developer 1, and the number of times developer 3 is the core developer 2, so that it may be determined that the ranking order of developer 1 is 1, the ranking order of developer 3 is 2, and the ranking order of developer 2 is 3.
Further, it may be determined that the coverage set includes source files a, B, C, D, E and F, and assuming that the third threshold is 2, the source file corresponding to developer 1 is deleted first, then the coverage set includes only 3 source files, then the source file corresponding to developer 3 may be deleted, and then the coverage set includes only 1 source file, and is smaller than the second threshold, then the foregoing step of deleting the source files corresponding to developers may be determined to be stopped, that is, developer 1 and developer 3 are deleted, that is, the number of deleted developers is 2, and therefore 2 may be used as a Truck factor.
Therefore, the embodiment of the invention provides the complete evaluation method for determining the core open source assembly, so that the core open source assembly corresponding to each open source project and the core developer corresponding to the core open source assembly can be determined more accurately and efficiently, and a good implementation basis is provided for the maintenance of the subsequent core open source assembly.
Based on the same inventive concept, the embodiment of the invention also provides a processing device of the open source assembly. As shown in fig. 3, which is a schematic structural diagram of a processing apparatus 300 of an open source assembly, may include:
a receiving unit 301, configured to receive an open source item to be processed; the open source project comprises a plurality of open source components;
a determining unit 302, configured to perform a core developer determination process on the plurality of open source components, and determine a core developer corresponding to each open source component respectively;
an obtaining unit 303, configured to perform analysis component centrality determination processing on each open source component based on a preset webpage ranking Pagerank algorithm and a core developer corresponding to each open source component, so as to obtain a target core open source component; and the analysis component centrality judgment process is used for comprehensively scoring the core developer and the dependency relationship corresponding to the open source component and screening out the target core open source component with the comprehensive score meeting the condition.
In a possible implementation manner, the determining unit 302 is specifically configured to:
for each open source component, the following operations are respectively performed:
cleaning the open source assembly to obtain at least one source file corresponding to the open source assembly;
analyzing the historical submission record of the open source component to obtain all developer information of the open source component;
determining the file-level contribution degree of each developer to the at least one source file according to a preset developer contribution degree rule, a component update log corresponding to the open source component, the at least one source file and all developer information;
determining a core developer corresponding to the open source component according to the file-level contribution degree of each developer to the at least one source file; and the contribution degree of the core developer corresponding to the open source component to the creation and updating of a plurality of source files in the open source component is highest.
In a possible embodiment, the apparatus further comprises a processing unit for:
determining each data pair in the history commit record; each data pair comprises mailbox information and user identification information;
if the mailbox information in the first data pair and the second data pair are the same, determining that the first data pair and the second data pair point to the same developer, and combining the first data pair and the second data pair into one data pair as one piece of developer information;
If the Lewenstein distance between the third data pair and the fourth data pair is smaller than the first threshold value, determining that the third data pair and the fourth data pair point to the same developer, and combining the third data pair and the fourth data pair into one data pair to serve as one piece of developer information.
In a possible implementation manner, the preset developer contribution rule is obtained based on the following formula:
DA(m d ,f p )=α+β×FA(m d ,f p )+γ×DL(m d ,f p )-δ×ln(1+AC(m d ,f p ))
wherein m is d For characterizing developer, f p For characterizing source files, α, β, γ, δ for characterizing weights, FA for characterizing developer m d Creating a source file f p Is used to characterize developer m d For source file f p DL is used to characterize developer m d For source file f p AC is used to characterize divide developer m d Other developers than the source file f p Is a total number of updates.
In a possible implementation manner, the determining unit 302 is specifically configured to:
taking all developers with highest file-level contribution degree in all developers corresponding to each source file as sub-core developers corresponding to each source file;
and taking the sub-core developer with the largest number of corresponding source files as the core developer corresponding to the open source component.
In a possible implementation manner, the obtaining unit 303 is specifically configured to:
acquiring dependency data from a packet manager, and constructing a corresponding netlike dependency relationship map among open source components based on the dependency data; the packet manager stores dependency data of each open source component, wherein the dependency data is used for indicating the dependency relationship among the open source components;
deleting all open source components which are never called by other components in the open source project according to the netlike dependency graph to obtain candidate open source components; calculating the scoring value of each candidate open source component based on the Pagerank algorithm;
and determining a target core open source component according to the candidate open source components with the score values larger than a second threshold value, which are screened out of the candidate open source components.
In a possible implementation manner, the obtaining unit 303 is further configured to:
respectively determining core factors and scoring values corresponding to candidate open source components with each scoring value larger than the second threshold value; wherein the core factor is determined based on a number of child core developers for which a number of corresponding source files is greater than a third threshold;
and if the core factor corresponding to the first candidate open source component is determined to be smaller than a fourth threshold value, and the scoring value corresponding to the first candidate open source component is determined to be larger than a fifth threshold value, the first candidate open source component is taken as a target core open source component.
For convenience of description, the above parts are described as being functionally divided into modules (or units) respectively. Of course, the functions of each module (or unit) may be implemented in the same piece or pieces of software or hardware when implementing the present invention.
Having described the method and apparatus for processing an open source component according to an exemplary embodiment of the present invention, an electronic device according to another exemplary embodiment of the present invention is described next.
Those skilled in the art will appreciate that the various aspects of the invention may be implemented as a system, method, or program product. Accordingly, aspects of the invention may be embodied in the following forms, namely: an entirely hardware embodiment, an entirely software embodiment (including firmware, micro-code, etc.) or an embodiment combining hardware and software aspects may be referred to herein as a "circuit," module "or" system.
The embodiment of the invention also provides electronic equipment based on the same conception as the embodiment of the method. In this embodiment, the structure of the electronic device may be shown in fig. 4, where the electronic device is, for example, the server 102 in fig. 1, as shown in fig. 4, and the electronic device in the embodiment of the present invention includes at least one processor 401, and a memory 402 and a communication interface 403 connected to the at least one processor 401, where the embodiment of the present invention does not limit a specific connection medium between the processor 401 and the memory 402, and in fig. 4, a connection between the processor 401 and the memory 402 is taken as an example by using a system bus 400, and in fig. 4, the system bus 400 is represented by a bold line, and a connection manner between other components is merely illustrative, and not limited. The system bus 400 may be divided into address buses, data buses, control buses, etc., and for ease of characterization, only one thick line is used in fig. 4 for characterization, but not for characterization of only one bus or one type of bus.
In the embodiment of the present invention, the memory 402 stores instructions executable by the at least one processor 401, and the at least one processor 401 may execute the steps included in the processing method of the open source component by executing the instructions stored in the memory 402.
The processor 401 is a control center of the electronic device, and may connect various parts of the entire fault detection device using various interfaces and lines, and may implement various functions of the electronic device by executing or executing instructions stored in the memory 402 and calling data stored in the memory 402. Alternatively, the processor 401 may include one or more processing units, and the processor 401 may integrate an application processor and a modem processor, wherein the processor 401 mainly processes an operating system, a user interface, an application program, etc., and the modem processor mainly processes wireless communication. It will be appreciated that the modem processor described above may not be integrated into the processor 401. In some embodiments, processor 401 and memory 402 may be implemented on the same chip, and in some embodiments they may be implemented separately on separate chips.
The processor 401 may be a general purpose processor such as a Central Processing Unit (CPU), digital signal processor, application specific integrated circuit, field programmable gate array or other programmable logic device, discrete gate or transistor logic device, discrete hardware components, which may implement or perform the methods, steps and logic blocks disclosed in the embodiments of the present invention. The general purpose processor may be a microprocessor or any conventional processor or the like. The steps of a method disclosed in connection with the embodiments of the present invention may be embodied directly in a hardware processor for execution, or in a combination of hardware and software modules in the processor for execution.
Memory 402 is a non-volatile computer-readable storage medium that can be used to store non-volatile software programs, non-volatile computer-executable programs, and modules. The Memory 402 may include at least one type of storage medium, which may include, for example, flash Memory, hard disk, multimedia card, card Memory, random access Memory (Random Access Memory, RAM), static random access Memory (Static Random Access Memory, SRAM), programmable Read-Only Memory (Programmable Read Only Memory, PROM), read-Only Memory (ROM), charged erasable programmable Read-Only Memory (Electrically Erasable Programmable Read-Only Memory), magnetic Memory, magnetic disk, optical disk, and the like. Memory 402 is any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer, but is not limited to such. The memory 402 in embodiments of the present invention may also be circuitry or any other device capable of performing memory functions for storing program instructions and/or data.
The communication interface 403 is a transmission interface that can be used for communication, and data can be received or transmitted through the communication interface 403.
In addition, the electronic device includes a basic input/output system (I/O system) 404, a mass storage device 408 for storing an operating system 405, application programs 406, and other program modules 407, which facilitate the transfer of information between the various devices within the electronic device.
The basic input/output system 404 includes a display 409 for displaying information and an input device 410, such as a mouse, keyboard, etc., for the user to input information. Wherein both the display 409 and the input device 410 are coupled to the processor 401 via a basic input/output system 404 coupled to the system bus 400. The basic input/output system 404 may also include an input/output controller for receiving and processing input from a number of other devices, such as a keyboard, mouse, or electronic stylus. Similarly, the input-output controller also provides output to a display screen, a printer, or other type of output device.
In particular, mass storage device 408 is connected to processor 401 through a mass storage controller (not shown) connected to system bus 400. Wherein the mass storage device 408 and its associated computer-readable media provide non-volatile storage for the server package. That is, mass storage device 408 may include a computer-readable medium (not shown) such as a hard disk or CD-ROM drive.
The electronic device may also operate via a network, such as the internet, connected to a remote computer on the network, in accordance with various embodiments of the present invention. I.e., the electronic device may be connected to the network 411 through a communication interface 403 coupled to the system bus 400, or alternatively, the communication interface 403 may be used to connect to other types of networks or remote computer systems (not shown).
The embodiment of the invention also provides a computer storage medium, wherein the computer readable storage medium stores a computer program, and the computer program is used for enabling a computer to execute the technical scheme of the processing method of the open source component in the embodiment.
Embodiments of the present invention also provide a computer program product comprising: computer program code, when the computer program code runs on a computer, makes the computer execute the computer program to implement the technical scheme of the processing method of the open source component in the embodiment.
Those skilled in the art will appreciate that: all or part of the steps of implementing the above method embodiments may be implemented by hardware associated with program instructions pertaining to a computer program, which may be stored in a computer-readable storage medium, which when executed performs steps comprising the above method embodiments; the readable storage medium can be, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or a combination of any of the foregoing. More specific examples (a non-exhaustive list) of the readable storage medium would include the following: an electrical connection having one or more wires, a portable disk, a hard disk, random Access Memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
The program product of embodiments of the present invention may employ a portable compact disc read only memory (CD-ROM) and include program code and may run on a computing device. However, the program product of the present invention is not limited thereto, and in this document, a readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with a command execution system, apparatus, or device.
The readable signal medium may include a data signal propagated in baseband or as part of a carrier wave with readable program code embodied therein. Such a propagated data signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination of the foregoing. A readable signal medium may also be any readable medium that is not a readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with a command execution system, apparatus, or device.
Program code embodied on a readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, C++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computing device, partly on the user's equipment, as a stand-alone software package, partly on the user's computing device, partly on a remote computing device, or entirely on the remote computing device or server. In the case of remote computing devices, the remote computing device may be connected to the user computing device through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computing device (e.g., connected via the Internet using an Internet service provider).
While preferred embodiments of the present invention have been described, additional variations and modifications in those embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. It is therefore intended that the following claims be interpreted as including the preferred embodiments and all such alterations and modifications as fall within the scope of the invention.
It will be apparent to those skilled in the art that various modifications and variations can be made to the present invention without departing from the spirit or scope of the invention. Thus, it is intended that the present invention also include such modifications and alterations insofar as they come within the scope of the appended claims or the equivalents thereof.

Claims (10)

1. A method of processing an open source component, the method comprising:
receiving an open source item to be processed; the open source project comprises a plurality of open source components;
performing core developer judgment processing on the plurality of open source components, and respectively determining a core developer corresponding to each open source component;
based on a preset webpage ranking Pagerank algorithm and a core developer corresponding to each open source component, carrying out analysis component centrality judgment processing on each open source component to obtain a target core open source component; and the analysis component centrality judgment process is used for comprehensively scoring the core developer and the dependency relationship corresponding to the open source component and screening out the target core open source component with the comprehensive score meeting the condition.
2. The method of claim 1, wherein performing a core developer decision process on the plurality of open source components, respectively determining a core developer corresponding to each of the open source components, comprises:
For each open source component, the following operations are respectively performed:
cleaning the open source assembly to obtain at least one source file corresponding to the open source assembly;
analyzing the historical submission record of the open source component to obtain all developer information of the open source component;
determining the file-level contribution degree of each developer to the at least one source file according to a preset developer contribution degree rule, a component update log corresponding to the open source component, the at least one source file and all developer information;
determining a core developer corresponding to the open source component according to the file-level contribution degree of each developer to the at least one source file; and the contribution degree of the core developer corresponding to the open source component to the creation and updating of a plurality of source files in the open source component is highest.
3. The method of claim 2, wherein the method further comprises:
determining each data pair in the history commit record; each data pair comprises mailbox information and user identification information;
if the mailbox information in the first data pair and the second data pair are the same, determining that the first data pair and the second data pair point to the same developer, and combining the first data pair and the second data pair into one data pair as one piece of developer information;
If the Lewenstein distance between the third data pair and the fourth data pair is smaller than the first threshold value, determining that the third data pair and the fourth data pair point to the same developer, and combining the third data pair and the fourth data pair into one data pair to serve as one piece of developer information.
4. A method according to claim 2 or 3, wherein the pre-set developer contribution rule is obtained based on the following formula:
DA(m d ,f p )=α+β×FA(m d ,f p )+γ×DL(m d ,f p )-δ×ln(1+AC(m d ,f p ))
wherein m is d For characterizing developer, f p For characterizing source files, α, β, γ, δ for characterizing weights, FA for characterizing developer md to create source file f p Is used to characterize developer m d For source file f p DL is used to characterize developer m d For source file f p AC is used to characterize divide developer m d Other developers than the source file f p Is a total number of updates.
5. A method as claimed in claim 2 or 3, wherein determining the core developer to which the open source component corresponds based on the file-level contribution of each developer to the at least one source file comprises:
taking all developers with highest file-level contribution degree in all developers corresponding to each source file as sub-core developers corresponding to each source file;
And taking the sub-core developer with the largest number of corresponding source files as the core developer corresponding to the open source component.
6. The method of claim 5, wherein performing analysis component centrality determination processing on each of the open source components based on a preset web page ranking Pagerank algorithm and a core developer corresponding to each of the open source components, to obtain a target core open source component, comprises:
acquiring dependency data from a packet manager, and constructing a corresponding netlike dependency relationship map among open source components based on the dependency data; the packet manager stores dependency data of each open source component, wherein the dependency data is used for indicating the dependency relationship among the open source components;
deleting all open source components which are never called by other components in the open source items according to the netlike dependency graph to obtain candidate open source components; calculating the scoring value of each candidate open source component based on a webpage ranking Pagerank algorithm;
and determining a target core open source component according to the candidate open source components with the score values larger than a second threshold value, which are screened out of the candidate open source components.
7. The method of claim 6, wherein determining a target core open source component from the candidate open source components having a score value greater than a second threshold value selected from the candidate open source components comprises:
Respectively determining core factors and scoring values corresponding to candidate open source components with each scoring value larger than the second threshold value; wherein the core factor is determined based on a number of child core developers for which a number of corresponding source files is greater than a third threshold;
and if the core factor corresponding to the first candidate open source component is determined to be smaller than a fourth threshold value, and the scoring value corresponding to the first candidate open source component is determined to be larger than a fifth threshold value, the first candidate open source component is taken as a target core open source component.
8. An apparatus for processing an open source assembly, the apparatus comprising:
the receiving unit is used for receiving the open source item to be processed; the open source project comprises a plurality of open source components;
the determining unit is used for performing core developer judgment processing on the plurality of open source components and respectively determining core developers corresponding to the open source components;
the acquisition unit is used for carrying out analysis component centrality judgment processing on each open source component based on a preset webpage ranking Pagerank algorithm and a core developer corresponding to each open source component to acquire a target core open source component; and the analysis component centrality judgment process is used for comprehensively scoring the core developer and the dependency relationship corresponding to the open source component and screening out the target core open source component with the comprehensive score meeting the condition.
9. An electronic device comprising at least one processor; and a memory communicatively coupled to the at least one processor; wherein the memory stores instructions executable by the at least one processor to implement the method of any of claims 1-7.
10. A computer storage medium, characterized in that the computer storage medium stores a computer program for enabling a computer to perform the method according to any one of claims 1-7.
CN202311110467.7A 2023-08-30 2023-08-30 Processing method and device of open source assembly, electronic equipment and storage medium Pending CN117113101A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311110467.7A CN117113101A (en) 2023-08-30 2023-08-30 Processing method and device of open source assembly, electronic equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311110467.7A CN117113101A (en) 2023-08-30 2023-08-30 Processing method and device of open source assembly, electronic equipment and storage medium

Publications (1)

Publication Number Publication Date
CN117113101A true CN117113101A (en) 2023-11-24

Family

ID=88803624

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311110467.7A Pending CN117113101A (en) 2023-08-30 2023-08-30 Processing method and device of open source assembly, electronic equipment and storage medium

Country Status (1)

Country Link
CN (1) CN117113101A (en)

Similar Documents

Publication Publication Date Title
CN105283851B (en) For selecting the cost analysis of tracking target
CN111708938B (en) Method, apparatus, electronic device, and storage medium for information processing
CN106295333A (en) For detecting the method and system of malicious code
CN113836131A (en) Big data cleaning method and device, computer equipment and storage medium
CN111966915A (en) Information inspection method, computer equipment and storage medium
CN111932308A (en) Data recommendation method, device and equipment
CN111831708A (en) Missing data-based sample analysis method and device, electronic equipment and medium
CN110516062A (en) A kind of search processing method and device of document
CN113297287B (en) Automatic user policy deployment method and device and electronic equipment
CN109582560A (en) Test file edit methods, device, equipment and computer readable storage medium
CN110544166A (en) Sample generation method, device and storage medium
CN114265777B (en) Application program testing method and device, electronic equipment and storage medium
CN109359233A (en) Public network massive information monitoring method and system based on natural language processing technique
CN115292187A (en) Method and device for automatically testing code-free page, electronic equipment and medium
CN117113101A (en) Processing method and device of open source assembly, electronic equipment and storage medium
CN113850669A (en) User grouping method and device, computer equipment and computer readable storage medium
CN113052509A (en) Model evaluation method, model evaluation apparatus, electronic device, and storage medium
CN109992614B (en) Data acquisition method, device and server
CN108536604B (en) Method and terminal for testing response time of WEB page
CN111414157A (en) Iteration method and device for changes of profiles architecture, computer equipment and storage medium
CN117130934A (en) Data processing method and device, electronic equipment and storage medium
CN109241428B (en) Method, device, server and storage medium for determining gender of user
CN111177501B (en) Label processing method, device and system
CN116934012A (en) Security event processing method and device, electronic equipment and storage medium
CN117221631A (en) Multimedia content pushing method and device, electronic equipment and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination