Software product processing methods, devices, computer equipment, and storage media

By splitting large software products into independent component modules concurrently, combined with the reuse of historical compiled outputs, the problem of excessive compilation time of large software products and uncontrollable version quality is solved, and efficient software product processing and quality is achieved Controllable release.

CN114564207BActive Publication Date: 2025-02-14TENCENT CLOUD COMPUTING (BEIJING) CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202210361956.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-04-07
Publication Date
2025-02-14
Estimated Expiration
2042-04-07

AI Technical Summary

Technical Problem

When upgrading and maintaining large software products, they need to compile multiple versions of code, resulting in too long compilation time and repairing defects of a certain component and uncontrollable quality of reissue.

Method used

By splitting the target software products into component modules with independent functions, obtaining the compilation parameters of each component, dividing the component, performing concurrent compilation, and reusing the historical compilation outputs to assemble into a software product installation package.

Benefits of technology

It realizes the rapid and efficient assembly of compiled outputs and historical compiled outputs, improves the processing efficiency of software products, and ensures the controllability of the edition quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114564207B_ABST
    Figure CN114564207B_ABST
Patent Text Reader

Abstract

The present application relates to a method, apparatus, computer equipment, storage medium and computer program product for processing software products, which can be applied to software products in the field of maps and software products in the field of autonomous driving. The method comprises: obtaining compilation parameters corresponding to the product component to be compiled; the product component to be compiled is a component obtained by splitting the target software product; dividing the product component to be compiled according to the compilation parameters to obtain a first product component and a second product component; compiling the first product component to obtain a compilation output corresponding to the first product component; obtaining a historical compilation output corresponding to the second product component; assembling the compilation output and the historical compilation output to obtain a software product installation package. This method can effectively improve the processing efficiency of software products.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a method, apparatus, computer equipment, storage medium and computer program product for processing a software product. Background Art

[0002] With the development of computer technology and Internet technology, the application of software products in different business scenarios has been implemented, making various types of software products widely concerned by the public. The production of software products generally goes through the demand stage, research and development stage, and release stage. The demand stage mainly involves product demand determination, demand feasibility analysis, UI design, etc.; the research and development stage mainly involves software product development and testing; the release stage mainly involves compiling and publishing the tested code, as well as subsequent upgrades and operational maintenance. Since software products need to be updated and maintained according to a certain cycle, it is necessary to compile software products in a timely and effective manner to ensure the compilation efficiency and release quality of software products.

[0003] However, in the current software product processing method, some large software products usually have different versions, and these software products need to be upgraded and maintained at regular intervals. Therefore, it may be necessary to compile hundreds of sets of codes for these software products, which can easily lead to problems such as long compilation time for large software products, uncontrollable quality of re-release after fixing defects in certain components, and low software product processing efficiency. Summary of the invention

[0004] Based on this, it is necessary to provide a software product processing method, device, computer equipment, computer-readable storage medium and computer program product that can effectively improve the processing efficiency of software products in response to the above technical problems.

[0005] In a first aspect, the present application provides a method for processing a software product. The method includes: obtaining compilation parameters corresponding to a product component to be compiled; the product component to be compiled is a component obtained by splitting a target software product; dividing the product component to be compiled according to the compilation parameters to obtain a first product component and a second product component; compiling the first product component to obtain a compilation output corresponding to the first product component; obtaining a historical compilation output corresponding to the second product component; assembling the compilation output and the historical compilation output to obtain a software product installation package.

[0006] In a second aspect, the present application also provides a software product processing device. The device includes: an acquisition module, used to acquire compilation parameters corresponding to a product component to be compiled; the product component to be compiled is a component obtained by splitting a target software product; a division module, used to divide the product component to be compiled according to the compilation parameters to obtain a first product component and a second product component; a compilation module, used to compile the first product component to obtain a compilation output corresponding to the first product component; the acquisition module is also used to acquire a historical compilation output corresponding to the second product component; an assembly module, used to assemble the compilation output and the historical compilation output to obtain a software product installation package.

[0007] In a third aspect, the present application also provides a computer device. The computer device includes a memory and a processor, the memory stores a computer program, and the processor implements the following steps when executing the computer program: obtaining compilation parameters corresponding to a product component to be compiled; the product component to be compiled is a component obtained by splitting a target software product; dividing the product component to be compiled according to the compilation parameters to obtain a first product component and a second product component; compiling the first product component to obtain a compilation output corresponding to the first product component; obtaining a historical compilation output corresponding to the second product component; assembling the compilation output and the historical compilation output to obtain a software product installation package.

[0008] In a fourth aspect, the present application further provides a computer-readable storage medium. The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the following steps are implemented: obtaining compilation parameters corresponding to a product component to be compiled; the product component to be compiled is a component obtained by splitting a target software product; dividing the product component to be compiled according to the compilation parameters to obtain a first product component and a second product component; compiling the first product component to obtain a compilation product corresponding to the first product component; obtaining a historical compilation product corresponding to the second product component; assembling the compilation product and the historical compilation product to obtain a software product installation package.

[0009] In a fifth aspect, the present application also provides a computer program product. The computer program product includes a computer program, which implements the following steps when executed by a processor: obtaining compilation parameters corresponding to a product component to be compiled; the product component to be compiled is a component obtained by splitting a target software product; dividing the product component to be compiled according to the compilation parameters to obtain a first product component and a second product component; compiling the first product component to obtain a compilation product corresponding to the first product component; obtaining a historical compilation product corresponding to the second product component; assembling the compilation product and the historical compilation product to obtain a software product installation package.

[0010] The processing method, device, computer equipment, storage medium and computer program product of the software product described above obtain the compilation parameters corresponding to the product component to be compiled, and the product component to be compiled is the component obtained by splitting the target software product; divide the product component to be compiled into components according to the compilation parameters to obtain the first product component and the second product component, and compile the first product component to obtain the compilation output corresponding to the first product component; obtain the historical compilation output corresponding to the second product component, and assemble the compilation output and the historical compilation output to obtain the software product installation package. Since the product component to be compiled is the component obtained by splitting the target software product, the product component to be compiled can be divided into components according to the compilation parameters corresponding to the product component to be compiled obtained to obtain the first product component and the second product component, so that the first product component after splitting can be compiled concurrently, and the historical compilation output corresponding to the second product component can be directly reused, so that the compilation output and the historical compilation output can be assembled quickly and efficiently to obtain the software product installation package, which effectively improves the software product processing efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] Figure 1 An application environment diagram of a processing method for a software product in one embodiment;

[0012] Figure 2 A flowchart of a method for processing a software product in one embodiment;

[0013] Figure 3 A schematic flow chart of the steps of dividing the product components to be compiled according to the compilation parameters to obtain the first product component and the second product component in one embodiment;

[0014] Figure 4 A schematic diagram of a compiling pipeline corresponding to a Display component in an embodiment;

[0015] Figure 5 A schematic diagram of a compiling pipeline corresponding to a SimCore component in an embodiment;

[0016] Figure 6 A schematic diagram of an interface of a pipeline configuration page in an embodiment;

[0017] Figure 7 A flowchart of a process for quickly compiling and publishing a large-scale simulation product in one embodiment;

[0018] Figure 8 A schematic diagram of a distributed compilation process in one embodiment;

[0019] Fig. 9 A specific example flow chart of distributed compilation in one embodiment;

[0020] Fig.10 is a structural block diagram of a processing device for a software product in one embodiment;

[0021] Fig.11 FIG. 4 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION

[0022] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.

[0023] The software product processing method provided in the embodiment of the present application can be applied to Figure 1 In the application environment shown. Among them, the terminal 102 communicates with the server 104 through the network. The data storage system can store the data that the server 104 needs to process. The data storage system can be integrated on the server 104, or it can be placed on the cloud or other servers. The terminal 102 can obtain the compilation parameters corresponding to the product components to be compiled from the server 104, and the product components to be compiled are the components obtained by splitting the target software product; the terminal 102 divides the product components to be compiled according to the compilation parameters to obtain the first product component and the second product component; the terminal 102 compiles the first product component to obtain the compilation output corresponding to the first product component; the terminal 102 obtains the historical compilation output corresponding to the second product component, and assembles the compilation output and the historical compilation output to obtain the software product installation package.

[0024] The terminal 102 may be, but is not limited to, various desktop computers, laptop computers, smart phones, tablet computers, IoT devices, and portable wearable devices. IoT devices may be smart speakers, smart TVs, smart air conditioners, smart car-mounted devices, etc. Portable wearable devices may be smart watches, smart bracelets, head-mounted devices, etc.

[0025] The server 104 can be implemented with an independent server or a server cluster composed of multiple servers. It can be understood that the server 104 provided in the embodiment of the present application can also be a service node in the blockchain system. The service nodes in the blockchain system form a peer-to-peer (P2P) network. The P2P protocol is an application layer protocol running on the Transmission Control Protocol (TCP) protocol.

[0026] Intelligent Traffic System (ITS), also known as Intelligent Transportation System, is an effective and comprehensive application of advanced science and technology (information technology, computer technology, data communication technology, sensor technology, electronic control technology, automatic control theory, operations research, artificial intelligence, etc.) to transportation, service control and vehicle manufacturing, strengthening the connection between vehicles, roads and users, thus forming a comprehensive transportation system that ensures safety, improves efficiency, improves the environment and saves energy. Or;

[0027] Intelligent Vehicle Infrastructure Cooperative Systems (IVICS), referred to as IVICS, is a development direction of Intelligent Transportation Systems (ITS). IVICS uses advanced wireless communications and new generation Internet technologies to implement all-round dynamic real-time information interaction between vehicles and roads, and conducts active vehicle safety control and road cooperative management based on the collection and integration of dynamic traffic information in all time and space, fully realizing the effective coordination of people, vehicles and roads, ensuring traffic safety, and improving traffic efficiency, thus forming a safe, efficient and environmentally friendly road traffic system.

[0028] Computer Vision Technology (CV) Computer vision is a science that studies how to make machines "see". To put it more specifically, it refers to machine vision that uses cameras and computers to replace human eyes to identify, record and measure targets, and further performs graphic processing to make computer processing into images that are more suitable for human eye observation or transmission to instruments for detection. As a scientific discipline, computer vision studies related theories and technologies, and attempts to establish an artificial intelligence system that can obtain information from images or multi-dimensional data. Computer vision technology usually includes image processing, image recognition, image semantic understanding, image retrieval, OCR, video processing, video semantic understanding, video content / behavior recognition, three-dimensional object reconstruction, 3D technology, virtual reality, augmented reality, simultaneous positioning and map construction, automatic driving, smart transportation and other technologies, as well as common biometric recognition technologies such as face recognition and fingerprint recognition.

[0029] With the research and advancement of artificial intelligence technology, artificial intelligence technology has been studied and applied in many fields, such as common smart homes, smart wearable devices, virtual assistants, smart speakers, smart marketing, unmanned driving, automatic driving, drones, robots, smart medical care, smart customer service, Internet of Vehicles, automatic driving, smart transportation, etc. I believe that with the development of technology, artificial intelligence technology will be applied in more fields and play an increasingly important role.

[0030] In one embodiment, Figure 2 As shown, a method for processing a software product is provided, and the method is applied to Figure 1 The terminal in is used as an example to illustrate, including the following steps:

[0031] Step 202, obtaining compilation parameters corresponding to the product components to be compiled; the product components to be compiled are components obtained by splitting the target software product.

[0032] Among them, the product components to be compiled refer to the division of a large software product into multiple component modules with independent functional modules according to the characteristics of the software product, and each component module can be used as a product component to be compiled, that is, the product components to be compiled in this application can include multiple product components to be compiled. A component module refers to a certain part that constitutes a complete software product, and a software unit with independent functional characteristics. For example, for a stand-alone simulation product of autonomous driving, according to the characteristics of the software product, it can be divided into multiple independent component modules such as the UI main framework component, 2D player component, map editor component, 3D rendering component, traffic flow simulation component, high-precision map service component, indicator evaluation component, simulated millimeter-wave radar component, vehicle dynamics component, decision-making planning component, vehicle control component, etc., wherein each component module obtained after the division can be used as a product component to be compiled.

[0033] The target software product refers to the software product to be released. The target software can include various types of software products. For example, the target software product can be a large-scale game software product, a stand-alone autonomous driving simulation product, an audio and video entertainment software product, etc.

[0034] Compilation parameters refer to the configured compilation parameters for the target software product. The compilation parameters are used to compile the various components included in the target software product. The compilation parameters may include different types of compilation parameters. For example, the compilation parameters may include parameters such as dependent software version, compilation environment, and reuse of historical outputs. In addition, according to different classification criteria, the compilation parameters can also be divided into customized personalized compilation parameters and compilation parameters corresponding to each component. Personalized compilation parameters may include customized requirement items, such as disabling or enabling a certain UI feature, whether to have a encryption lock, whether to reuse the historical output of a component, and other customized requirement items. The compilation parameters corresponding to each component may include which UE version is used to compile the component, the code URL path corresponding to the component, the code branch number, the project name number, and other parameters.

[0035] Specifically, the terminal can obtain the compilation parameters corresponding to the product components to be compiled that already exist locally, or the terminal has an association relationship with other devices, and the terminal can obtain the compilation parameters corresponding to the product components to be compiled transmitted by other devices. For example, the terminal has an association relationship with a server, and the terminal can receive the compilation parameters corresponding to the product components to be compiled distributed by the server. Here, the method for the terminal to obtain the compilation parameters corresponding to the product components to be compiled is not specifically limited, and other acquisition methods can also be used. Among them, the product components to be compiled are components obtained by splitting the target software product, that is, the product components to be compiled may include multiple components to be compiled with different functional characteristics.

[0036] For example, take the software product as a stand-alone simulation product for autonomous driving as an example. According to the characteristics of the software product, the user can split the software product into multiple independent component modules such as the UI main framework component, 2D player component, map editor component, 3D rendering component, traffic flow simulation component, high-precision map service component, indicator evaluation component, simulation millimeter wave radar component, vehicle dynamics component, decision planning component, vehicle control component, etc., then the terminal can obtain the compilation parameters corresponding to each component module obtained after the above splitting, and use each component obtained after the above splitting as the product component to be compiled. Among them, the compilation parameters corresponding to each component can be pre-configured.

[0037] Step 204 , dividing the product component to be compiled according to the compilation parameters to obtain a first product component and a second product component.

[0038] Component division refers to dividing the components included in the product component to be compiled to obtain the category to which each component belongs. For example, according to the compilation type, the components included in the product component to be compiled are divided to obtain the compilation category to which each component belongs.

[0039] The first product component refers to a product component of a compilation type, for example, the first product component in the present application may be a product component of a completely new compilation mode. The second product component refers to a product component of another compilation type, for example, the second product component in the present application may be a product component of a reuse mode, that is, the first product component and the second product component in the present application are used to distinguish product components of different compilation modes.

[0040] Specifically, after the terminal obtains the compilation parameters corresponding to the product component to be compiled, the terminal can divide the product component to be compiled according to the compilation parameters to obtain a first product component and a second product component, wherein the first product component and the second product component are components of different compilation types.

[0041] For example, take the software product as a stand-alone simulation product for autonomous driving as an example. Assuming that the terminal obtains the compilation parameter corresponding to the UI main frame component in the product component to be compiled as "A1" and the compilation parameter corresponding to the map editor component as "A2", and the compilation parameter "A1" contains the parameter "auto", and the compilation parameter "A2" contains the parameter "new compilation", then after the terminal obtains the compilation parameters corresponding to the above-mentioned product components to be compiled, the terminal can divide the product components to be compiled into components according to the compilation parameters "auto" and "new compilation" corresponding to the components to be compiled, and obtain the first product component and the second product component. Since "auto" indicates the reuse mode and "new compilation" indicates the new compilation mode, when the terminal divides the product components to be compiled into components according to the compilation parameters "auto" and "new compilation" corresponding to the components to be compiled, the terminal can mark the UI main frame component as the second product component and mark the map editor component as the first product component. That is, the second product component is a product component in the reuse mode, and the first product component is a product component in the new compilation mode.

[0042] Step 206: compile the first product component to obtain a compilation product corresponding to the first product component.

[0043] Compilation output refers to the executable file obtained after compilation. For example, after compiling source code file A, executable file A1 is obtained. Executable file A1 is the compilation output. The work that a computer terminal can do is just to execute instructions one by one, that is, to execute binary code, and what programmers do is to input various combinations of numbers and characters from the keyboard, and finally generate a text file, called a source code file. How to convert the source file into an executable file that can be directly run by the computer, that is, a string of ordered instructions, is the role of compilation, and this conversion process is compilation.

[0044] Specifically, the terminal divides the product component to be compiled according to the compilation parameters, and after obtaining the first product component and the second product component, the terminal can compile the first product component to obtain the compilation output corresponding to the first product component. Since the first product component in the present application is a product component of a completely new compilation mode, the terminal needs to recompile the source code file of the first product component based on the compilation parameters corresponding to the first product component to obtain the corresponding compilation output.

[0045] For example, let's take the software product as a stand-alone simulation product for autonomous driving as an example. Assuming that the terminal obtains the compilation parameter "A2" corresponding to the map editor component in the product component to be compiled, and the compilation parameter "A2" contains the parameter "new compilation", then after the terminal obtains the compilation parameter corresponding to the above product component to be compiled, since "new compilation" means a new compilation mode, the terminal divides the product component to be compiled according to the compilation parameter "new compilation" corresponding to the component to be compiled. The terminal can mark the map editor component as the first product component, that is, the first product component is a product component of a new compilation mode. Furthermore, the terminal can compile the first product component, i.e., the map editor component, to obtain the compilation output corresponding to the map editor component.

[0046] Step 208: Obtain the historical compilation artifacts corresponding to the second product component.

[0047] Historical compilation output refers to compilation output within a certain period of time in the past. For example, the database can store historical compilation output of each software product within the last three months.

[0048] Specifically, after the terminal compiles the first product component and obtains the compilation output corresponding to the first product component, the terminal can obtain the historical compilation output corresponding to the second product component. Since the second product component in the present application is a product component in a reuse mode, the terminal does not need to recompile the source code file of the second product component, and the terminal can directly obtain the historical compilation output that meets the second product compilation parameters from the database, that is, there is no need to perform the compilation process, and the terminal can use the obtained historical compilation output as the compilation output corresponding to the second product component this time.

[0049] Step 210: assemble the compilation product and the historical compilation product to obtain a software product installation package.

[0050] The software product installation package refers to the installation package (Install pack), which is a collection of self-decompressible files, including all the files installed by the software. Running this installation package (executable file) can release all the files of this software to the hard disk, and complete the tasks of modifying the registry, modifying system settings, creating shortcuts, etc. The installation package file is mostly in exe format.

[0051] Specifically, after the terminal obtains the historical compilation product corresponding to the second product component, the terminal can assemble the compilation product and the historical compilation product to obtain a software product installation package. For example, the terminal can use a packaging tool to assemble the compilation product corresponding to the first product component, the historical compilation product corresponding to the second product component, and related description files to obtain a software product installation package.

[0052] Take the case where the software product is a stand-alone autonomous driving simulation product as an example. Assuming that the terminal divides the components of the product to be compiled according to the compilation parameters "auto" and "new compilation" corresponding to the components to be compiled, the terminal marks the UI main frame component as the second product component and the map editor component as the first product component. That is, the second product component is a product component in a reuse mode, and the first product component is a product component in a new compilation mode. The terminal compiles the first product component, the map editor component, and obtains the compilation output A1 corresponding to the map editor component, and obtains the historical compilation output B1 corresponding to the second product component, the UI main frame component. The terminal can use the webpack tool to assemble the compilation output A1 corresponding to the map editor component and the historical compilation output B1 corresponding to the UI main frame component, and finally generate the installation package of the stand-alone autonomous driving simulation product.

[0053] In addition, according to the characteristics of the software product, the relevant description files can also be assembled together with the compilation output and historical compilation output to finally generate the installation package of the stand-alone autonomous driving simulation product. The description file refers to the release information of the software product. The content in the description file includes but is not limited to the product version number, component module name, description document, demonstration code, demonstration software configuration, demonstration data and other content.

[0054] In the above-mentioned software product processing method, by obtaining the compilation parameters corresponding to the product component to be compiled, the product component to be compiled is the component obtained by splitting the target software product; the product component to be compiled is divided into components according to the compilation parameters to obtain the first product component and the second product component, and the first product component is compiled to obtain the compilation output corresponding to the first product component; the historical compilation output corresponding to the second product component is obtained, and the compilation output and the historical compilation output are assembled to obtain the software product installation package. Since the product component to be compiled is the component obtained by splitting the target software product, the product component to be compiled can be divided into components according to the compilation parameters corresponding to the product component to be compiled obtained to obtain the first product component and the second product component, so that the first product component after the split can be compiled concurrently, and the historical compilation output corresponding to the second product component can be directly reused, so that the compilation output and the historical compilation output can be assembled quickly and efficiently to obtain the software product installation package, which effectively improves the software product processing efficiency.

[0055] In one embodiment, Figure 3 As shown, the step of dividing the product components to be compiled according to the compilation parameters to obtain the first product component and the second product component includes:

[0056] Step 302: Determine the compilation mode corresponding to each product component in the product component to be compiled based on the compilation type in the compilation parameters.

[0057] Step 304 : Mark the product component whose compilation mode is a brand new compilation mode among the product components to be compiled as the first product component.

[0058] Step 306: Mark the product component whose compilation mode is the reuse mode among the product components to be compiled as the second product component.

[0059] The compilation mode refers to the processing method used during compilation. For example, the compilation mode in this application may include a new compilation mode and a reuse mode.

[0060] Specifically, after the terminal obtains the compilation parameters corresponding to the product components to be compiled, the terminal can determine the compilation modes corresponding to each product component in the product components to be compiled based on the compilation type in the compilation parameters, and the terminal marks the product components in the product components to be compiled whose compilation mode is a new compilation mode as the first product component; the terminal marks the product components in the product components to be compiled whose compilation mode is a reuse mode as the second product component.

[0061] For example, take the software product as a stand-alone simulation product for autonomous driving as an example. Assuming that the terminal obtains the compilation parameter corresponding to the UI main framework component in the product component to be compiled as "A1" and the compilation parameter corresponding to the map editor component as "A2", and the compilation parameter "A1" contains the parameter "auto", and the compilation parameter "A2" contains the parameter "new compilation", then after the terminal obtains the compilation parameters corresponding to the above-mentioned product components to be compiled, the terminal can determine the compilation mode corresponding to each product component in the product component to be compiled based on the compilation type parameters in the compilation parameters, namely "auto" and "new compilation". Since "auto" indicates the reuse mode and "new compilation" indicates the new compilation mode, the terminal can mark the UI main framework component as the second product component and mark the map editor component as the first product component. That is, the UI main framework component adopts the "auto" compilation method, and the map editor component adopts the "new compilation" compilation method.

[0062] In this embodiment, through parameter configuration, the software product to be released can be split into product components to be compiled with independent functions, and the compilation parameters corresponding to different component modules can be configured, thereby realizing the splitting and concurrent compilation of large software products, and making full use of distributed systems and concurrent operations to improve compilation efficiency.

[0063] In one embodiment, the step of compiling the first product component to obtain a compilation product corresponding to the first product component includes:

[0064] Obtaining the branch code specified in the compilation parameters corresponding to the first product component;

[0065] The first product component is compiled based on the branch code to obtain a compilation product corresponding to the first product component.

[0066] Among them, the branch code refers to the source code file corresponding to the branch code number, which is the source code file corresponding to the first product component. For example, the branch code is "trucksim_2022.0_ubuntu".

[0067] Specifically, the terminal divides the product components to be compiled according to the compilation parameters, and after obtaining the first product component and the second product component, the terminal can obtain the source code file specified in the compilation parameters corresponding to the first product component, compile the source code file corresponding to the first product component, and obtain the compilation output corresponding to the first product component. For example, assuming that the compilation parameters corresponding to the first product component "model_in_loop" include: "model_in_loop_GitBranch: master, model_in_loop_BuildType: auto", the terminal can obtain the branch code number specified in the compilation parameters corresponding to the first product component "model_in_loop" as master, and use the "auto" compilation method to compile the first product component "model_in_loop" based on the branch code number master, and obtain the compilation output corresponding to the first product component "model_in_loop". This makes it possible to split and compile large software products concurrently, and can make full use of distributed systems and concurrent operations to improve compilation efficiency.

[0068] In one embodiment, the method further comprises:

[0069] In response to a setting operation triggered in the configuration management interface, a compilation pipeline corresponding to each product component in the product components to be compiled is constructed;

[0070] The compiling the first product component based on the branch code to obtain a compilation product corresponding to the first product component includes:

[0071] In the compilation pipeline corresponding to the first product component, the first product component is compiled according to the branch code to obtain a compilation product corresponding to the first product component.

[0072] Specifically, the terminal responds to the setting operation triggered by the user in the configuration management interface, and constructs the compilation pipeline corresponding to each product component in the product component to be compiled, that is, each product component corresponds to a compilation pipeline. Each component needs to provide a docker image as the compilation environment of the component. It can be understood that the information in the compilation environment in this application includes but is not limited to the docker image link URL, the version number of the docker image file, the docker image file integrity check code, the user name, the password and other information. The compilation pipeline provides the definition and setting of information such as compilation parameters, environment variables, component code library address, compilation steps and execution commands, and provides an API, i.e., an application program interface, which can be queried by external programs; at the same time, the compilation pipeline in this application records the execution results of each compilation step, including whether the command is executed successfully, the output of the step, the compilation log, the time taken for each step and other information.

[0073] Furthermore, when the terminal needs to compile the first product component, the terminal can compile the first product component according to the branch code in the compilation pipeline corresponding to the first product component to obtain the compilation output corresponding to the first product component. Figure 4 As shown in Figure 1, it is a schematic diagram of the compilation pipeline corresponding to the Display component. Figure 5 The figure below is a schematic diagram of the compilation pipeline corresponding to the SimCore component. On the compilation pipeline, you can configure the compilation parameters of different component modules, including but not limited to the code URL path, code branch number, project name number, whether to disable the module, whether to have a dongle, module configuration file, module dependency data, and other parameters. Since the compilation parameters configured for each component are different, the execution results of the compilation steps in each pipeline will also be different during the compilation process in the compilation pipeline. For example, Figure 4 Each compilation step of the Display component shown in Figure 5 There are certain differences in each compilation step of the SimCore components shown in .

[0074] In this embodiment, through parameter configuration, the software product to be released can be split into product components to be compiled with independent functions, and the compilation parameters corresponding to different component modules can be configured, thereby realizing the splitting and concurrent compilation of large software products, and making full use of distributed systems and concurrent operations to improve compilation efficiency.

[0075] In one embodiment, the step of constructing a compilation pipeline corresponding to each product component in the product component to be compiled includes:

[0076] Generate the compilation pipeline corresponding to each product component in the product component to be compiled in sequence;

[0077] For each product component in the product components to be compiled, in response to a parameter setting operation triggered on a compilation pipeline corresponding to the current product component, display a pipeline configuration page of the current product component;

[0078] Configure pipeline parameters on the pipeline configuration page to obtain the configured compilation pipeline; the pipeline parameters configured in the compilation pipeline include the compilation parameters corresponding to the current product components.

[0079] Specifically, the terminal responds to the setting operation triggered by the user on the configuration management interface, constructs the compilation pipeline corresponding to each product component in the product component to be compiled, and sequentially generates the compilation pipeline corresponding to each product component in the product component to be compiled; for each product component in the product component to be compiled, the terminal responds to the parameter setting operation triggered on the compilation pipeline corresponding to the current product component, the terminal displays the pipeline configuration page of the current product component, and the terminal configures the pipeline parameters on the pipeline configuration page to obtain the configured compilation pipeline. Among them, the pipeline parameters configured in the compilation pipeline include the compilation parameters corresponding to the current product component.

[0080] For example, Figure 6 The following is a schematic diagram of the pipeline configuration page interface. The user can enter the corresponding parameters in the pipeline configuration page of the current product component displayed on the terminal, so that the terminal can Figure 6 The pipeline configuration page shown in the figure configures the pipeline parameters and displays the relevant parameters of the configured compilation pipeline. For example, Figure 6 The sub-pipeline "model_in_loop" that has been set up in will be compiled with the master code branch and the auto compilation mode; "trucksim_interface" will be compiled with the "trucksim_2022.0_ubuntu" code branch and the "auto" mode. The above "auto" mode, that is, the sub-pipeline automatically guarantees the latest compilation output based on the historical compilation situation, parameter transmission and code submission situation. As a result, the compilation process module compiles each component in parallel through the distributed compilation system according to the compilation parameters of each component issued by the configuration module, realizing the splitting and concurrent compilation of large software products, which can make full use of distributed systems and concurrent operations to improve compilation efficiency, and support the historical version to be compiled again without difference, avoiding differences caused by changes in the compilation environment during re-compilation.

[0081] In one embodiment, the method further comprises:

[0082] When the first product component completes compilation, obtaining compilation information recorded in the compilation pipeline corresponding to the first product component;

[0083] Obtaining pipeline parameters corresponding to the compilation pipeline corresponding to the first product component;

[0084] The compilation information and pipeline parameters are stored in the data management center so that other compilation processes can obtain the information stored in the data management center.

[0085] Among them, compilation information refers to the component compilation information recorded in each pipeline, including but not limited to component output information, component code information, etc. The component output information may include storage path, file size, file hash value and other information, and the component code information may include branch number, submission number, submitter information and other information.

[0086] Pipeline parameters refer to the compilation parameters configured in each pipeline, including component compilation parameters, component configuration information, etc. Component compilation parameters include parameters such as version number of dependent software, environment information, etc. Component configuration information includes startup parameters, dependent configuration, etc.

[0087] Specifically, when the terminal completes the compilation of the first product component, the terminal can obtain the compilation information recorded in the compilation pipeline corresponding to the first product component, and at the same time obtain the pipeline parameters corresponding to the compilation pipeline corresponding to the first product component. The terminal can store the compilation information and pipeline parameters in the data management center so that other compilation processes can obtain the information stored in the data management center. That is, the data management center stores the execution results of each compilation step recorded in the compilation pipeline, including whether the command is executed successfully, the output of the step, the compilation log, the time consumption of each step, etc., so that the corresponding node information can be quickly queried during subsequent reuse.

[0088] For example, when the terminal determines that the compilation mode corresponding to a product component is a reuse mode, that is, a certain historical compilation output needs to be reused, the terminal can obtain the corresponding historical compilation output from the data management center based on the compilation parameters corresponding to the product component. As a result, by intelligently reusing historical compilation outputs, not only the compilation efficiency is improved, computing, storage and other resources are saved, but also the product quality of the tested components can be effectively guaranteed.

[0089] In one embodiment, the step of obtaining the historical compilation artifacts corresponding to the second product component includes:

[0090] When the compilation mode corresponding to the second product component is the reuse mode and the compilation parameters corresponding to the second product component contain a specified historical number, obtaining the historical compilation product corresponding to the second product component based on the historical number;

[0091] When the compilation mode corresponding to the second product component is the reuse mode and the specified historical number does not exist in the compilation parameters corresponding to the second product component, the historical compilation product is obtained based on the compilation parameters corresponding to the second product component.

[0092] Specifically, after the terminal compiles the first product component and obtains the compilation output corresponding to the first product component, when the terminal determines that the compilation mode corresponding to the second product component is the reuse mode and there is a specified historical number in the compilation parameters corresponding to the second product component, the terminal can obtain the historical compilation output corresponding to the second product component based on the historical number; or when the terminal determines that the compilation mode corresponding to the second product component is the reuse mode and there is no specified historical number in the compilation parameters corresponding to the second product component, the terminal can obtain the historical compilation output based on the compilation parameters corresponding to the second product component. That is, the reuse mode in this application can be divided into: a reuse mode with a specified historical number and a reuse mode that reuses historical outputs that meet the conditions.

[0093] For example, when the terminal determines that the compilation mode corresponding to the second product component is the reuse mode, and there is a specified historical number in the compilation parameters corresponding to the second product component, it means that the compilation parameters of the product component carry the specified historical number, and a specific historical compilation output needs to be reused. It is suitable for scenarios where the historical version is compiled again without difference, the compilation output of another component is updated, but the output of this component does not need to be updated.

[0094] When the terminal determines that the compilation mode corresponding to the second product component is the reuse mode, and the specified historical number does not exist in the compilation parameters corresponding to the second product component, it means that the compilation parameters of the product component need to reuse the historical output of the most recent successful compilation. The terminal automatically searches for a historical compilation output that meets the compilation parameters based on the transmitted compilation parameters, thereby effectively avoiding repeated compilation and saving compilation time and compilation equipment resources.

[0095] In this embodiment, by reusing historical outputs, the outputs corresponding to the component can be obtained without compilation, which greatly improves the compilation efficiency.

[0096] In one embodiment, the step of assembling the compilation product and the historical compilation product to obtain a software product installation package includes:

[0097] Obtain product release information corresponding to the target software product;

[0098] Assemble the compilation output, historical compilation output and product release information to obtain the installation package file of the target software product.

[0099] Among them, product release information refers to information used to describe software products. For example, product release information may include but is not limited to product version number, component module name, instruction document, demonstration code, demonstration software configuration, demonstration data and other information.

[0100] Specifically, the terminal can obtain the product release information corresponding to the target software product, and use the packaging software to assemble the compilation output corresponding to the first product component, the historical compilation output corresponding to the second product component, and the product release information to obtain the installation package file of the target software product. It can be understood that the method of assembling the compilation output corresponding to the first product component, the historical compilation output corresponding to the second product component, and the product release information in this application includes but is not limited to the above-mentioned method of using packaging software, and can also be other custom settings.

[0101] Take the software product of the stand-alone version of the autonomous driving simulation product as an example. Assuming that the terminal compiles the first product component, i.e., the map editor component, and obtains the compilation output corresponding to the map editor component as A1, and obtains the historical compilation output corresponding to the second product component, i.e., the UI main frame component as B1, the terminal can obtain the product release information C1 corresponding to the target software product, i.e., the stand-alone version of the autonomous driving simulation product. Then, the terminal can use the webpack tool to assemble the compilation output corresponding to the map editor component as A1, the historical compilation output corresponding to the UI main frame component as B1, and the product release information C1, and finally generate the installation package D1 of the stand-alone version of the autonomous driving simulation product. As a result, the rapid compilation and release of large-scale simulation products are realized, while supporting highly customized products, traceable historical versions, controllable quality of defect-fixed re-released versions, no-difference compilation of historical versions, and fully automated complete product release, which not only improves the daily R&D efficiency, but also ensures the quality of the release of large-scale commercial software products, and is more conducive to the subsequent long-term update and maintenance of commercial software.

[0102] In one embodiment, the method further comprises:

[0103] In response to the product release operation, release the software product installation package;

[0104] When a released target software product needs to be repaired, determine the target product components to be repaired in the software product installation package;

[0105] Obtain the fixed branch code corresponding to the target product component and update the compilation parameters;

[0106] Compile the fixed branch code corresponding to the target product component based on the updated compilation parameters to obtain the target compilation output;

[0107] Assemble the target compilation product and the historical compilation products corresponding to other product components in the target software product to obtain an updated software product installation package.

[0108] Among them, the updated compilation parameters refer to the updated compilation parameters. For example, the compilation parameters corresponding to component A set in the first version are A1. When the second version needs to be released, the compilation parameters of component A need to be updated, and the updated compilation parameters of component A are A2. A2 is the updated compilation parameter.

[0109] The fixed branch code refers to the updated source code file obtained by modifying the source code file corresponding to the branch code number of the released version, which is the fixed branch code. For example, the branch code of the last release is "trucksim_2022.0_ubuntu". After the R&D personnel modify the source code file corresponding to the branch code number of the released version, the fixed branch code is "trucksim_2022.1_ubuntu".

[0110] Specifically, the terminal assembles the compilation output and the historical compilation output to obtain a software product installation package, and then the terminal releases the software product installation package in response to a product release operation triggered by the user; when the released target software product needs to be repaired, the terminal determines the target product component to be repaired in the software product installation package; further, the terminal can obtain the repaired branch code and update compilation parameters corresponding to the target product component, and compile the repaired branch code corresponding to the target product component based on the update compilation parameters to obtain the target compilation output; the terminal assembles the target compilation output and the historical compilation output corresponding to other product components in the target software product to obtain an updated software product installation package.

[0111] For example, take the software product of a stand-alone autonomous driving simulation product as an example. Assume that the terminal releases the software product installation package in response to the product release operation triggered by the user. When the released software product needs to be repaired, the terminal determines that the target product component to be repaired in the software product installation package is the 3D rendering component; further, the terminal can obtain the repaired branch code "trucksim_2022.1_ubuntu" corresponding to the 3D rendering component and update the compilation parameters, and compile the source code file corresponding to the repaired branch code "trucksim_2022.1_ubuntu" corresponding to the 3D rendering component based on the updated compilation parameters to obtain the target compilation product B1 corresponding to the 3D rendering component; the terminal assembles the target compilation product B1 and the historical compilation products A2 and A3 corresponding to other product components in the target software product to obtain an updated software product installation package D1, that is, the compilation product corresponding to the 3D rendering component in D1 has been updated from A1 of the previous version to B1, while the compilation products of other components still reuse the historical compilation products A2 and A3 of the previous version.

[0112] In this embodiment, the software product compiled through the above configuration information only updates the 3D rendering component, while other components in the autonomous driving stand-alone simulation product still retain the same output as the last release. This method effectively avoids compiling other components again, which results in the output of this compilation being inconsistent with the output of the last release, which may introduce new problems.

[0113] In one embodiment, before obtaining the compilation parameters corresponding to the product component to be compiled, the method further includes:

[0114] In response to a personalized setting operation triggered in the configuration management interface, a personalized compilation parameter is configured; the personalized compilation parameter belongs to the compilation parameter;

[0115] Send personalized compilation parameters to the compilation process unit;

[0116] The compiling the first product component to obtain a compilation output corresponding to the first product component includes:

[0117] The first product component is compiled based on the personalized compilation parameters to obtain a compilation output corresponding to the first product component.

[0118] Among them, personalized compilation parameters refer to the personalized compilation parameters configured according to the customized requirements of the software product to be released. For example, personalized compilation parameters include but are not limited to disabling or enabling a certain UI function feature, whether to bring a dongle, whether to use a specific software data document, whether to reuse the historical output of a component, and other customized requirements.

[0119] Specifically, the terminal configures personalized compilation parameters in response to a personalized setting operation triggered by a user in a configuration management interface, and the terminal sends the personalized compilation parameters to a compilation process unit; when the compilation process unit compiles the first product component, the compilation process unit can compile the first product component based on the personalized compilation parameters to obtain a compilation output corresponding to the first product component. The personalized compilation parameters are one type of compilation parameters.

[0120] For example, take the software product as a stand-alone simulation product for autonomous driving as an example. Assume that before the terminal obtains the compilation parameters corresponding to the product component to be compiled, the terminal responds to the personalized setting operation triggered by the user in the configuration management interface, and the configured personalized compilation parameters are the historical outputs of the reused component A. The terminal sends the above personalized compilation parameters to the compilation process unit; when the compilation process unit compiles the first product component, namely component A, the compilation process unit can obtain the historical compilation output of component A based on the personalized compilation parameters, and use the obtained historical compilation output as the compilation output corresponding to component A obtained by this compilation. For example, the 3D rendering module in the simulation software is developed based on Ureal Engine (UE). The UE versions include 4.22, 4.24, 4.25 and 4.27. The characteristics of each version are different. The 3D rendering module may need to be compiled based on different UE versions according to project requirements. The personalized compilation parameters can specify UE_Version to indicate which UE version is used to compile the 3D rendering module. As a result, specific personalized setting parameters can be used according to different release requirements, and highly customized compilation products can be configured through parameters. This not only improves daily R&D efficiency, but also ensures the quality of large-scale commercial software product releases, and is more conducive to the subsequent long-term update and maintenance of commercial software.

[0121] In one embodiment, after assembling the compilation product and the historical compilation product to obtain a software product installation package, the method further includes:

[0122] Determine how to share the product;

[0123] Launch corresponding communication applications based on product sharing methods;

[0124] The method for obtaining the software product installation package is sent to the test end through the communication application, so that the test end obtains the software product installation package based on the method and tests the software product installation package.

[0125] Specifically, after the terminal assembles the compilation output and the historical compilation output to obtain the software product installation package, the terminal can determine the product sharing method and start the corresponding communication application based on the product sharing method; further, the terminal can send the method for obtaining the software product installation package to the test end through the communication application, so that the test end can obtain the software product installation package based on the acquisition method and test the software product installation package.

[0126] For example, when the terminal determines that the product sharing method is to use email, the terminal can start the corresponding communication application, that is, a certain email application; further, the terminal can send the method for obtaining the software product installation package to the test end through the email application, so that the test end can obtain the software product installation package based on the acquisition method and test the software product installation package.

[0127] It can be understood that the product sharing method in this application includes but is not limited to the above-mentioned method through email, and can also be other methods such as text messages, links, etc.

[0128] In this embodiment, by determining the product sharing method and sending the method for obtaining the software product installation package to relevant personnel based on the product sharing method, not only the daily R&D efficiency is improved, but also the quality of the release of large-scale commercial software products is guaranteed, and it is more conducive to the subsequent long-term update and maintenance of commercial software.

[0129] The present application also provides an application scenario, and the application scenario applies the processing method of the above-mentioned software product. Specifically, the application of the processing method of the software product in the application scenario is as follows:

[0130] When a large-scale simulation software product needs to be processed, that is, when a large-scale simulation product needs to be quickly compiled and released, the above-mentioned method for processing the software product can be adopted, that is, by obtaining the compilation parameters corresponding to the product components to be compiled, the product components to be compiled are the components obtained by splitting the target software product, and dividing the product components to be compiled according to the compilation parameters to obtain a first product component and a second product component; compiling the first product component to obtain the compilation output corresponding to the first product component; obtaining the historical compilation output corresponding to the second product component, and assembling the compilation output and the historical compilation output to obtain a software product installation package, and then publishing the obtained software product installation package.

[0131] The method provided in the embodiment of the present application can be applied to the scenario of highly customized and fast compiled and released large-scale simulation products. The following takes the scenario of highly customized large-scale simulation products as an example to illustrate the processing method of the software product provided in the embodiment of the present application.

[0132] In the traditional way, it is usually necessary to compile hundreds of sets of codes for each software product separately, which can easily lead to problems such as long compilation time for large software products and uncontrollable quality of re-release after fixing defects in a component. At the same time, it is also unable to support the traceability of historical versions and the re-compilation of historical versions without difference. In other words, it is impossible to support highly customized compilation products through parameter configuration, resulting in low processing efficiency of software products.

[0133] Therefore, in order to solve the above problems, the present application provides a solution for the rapid compilation and release of large-scale simulation products. By integrating multiple technologies such as module splitting, data separation, concurrent compilation, reuse of historical product packages, parameter transmission customization, and multi-platform linkage, it solves multiple technical problems such as the long compilation time of large-scale software products, the untraceability of the module codes of each component of the released product, the uncontrollable quality of re-release after repairing a component defect, the inability to re-compile and re-release the released product without difference, and the inability to support highly customized compiled products through parameter configuration. The method provided in the embodiment of the present application supports the release of complete products with high customization of products, traceability of historical versions, controllable quality of re-release of defect repairs, no difference compilation of historical versions, and full automation, which not only improves the efficiency of daily research and development, but also ensures the quality of the release of large-scale commercial software products, and is more conducive to the subsequent long-term update and maintenance of commercial software.

[0134] On the product side, the method provided in the embodiment of the present application can achieve the following functions:

[0135] 1. Highly customized and fast compilation of product features

[0136] In the embodiment of the present application, the software product compilation parameters can be sent to the compilation process module through the configuration management module according to the customization requirements of the software product. The customization requirements include but are not limited to disabling or enabling a certain UI function feature, whether to bring a dongle, whether to enable specific data documents according to different release requirements, whether to reuse the historical output of a component, etc.

[0137] The compilation process module compiles each component separately according to the received compilation parameters. If the compilation parameters indicate that the historical output of a component needs to be reused, there is no need to compile the component. The compilation process module can directly obtain the historical compilation output as the current compilation output, which can save a lot of compilation time.

[0138] The packaging management module integrates the above components into a complete software product according to the customization requirements of the software product.

[0139] 2. Update specific modules and reuse historical outputs of other component modules

[0140] When a simulation product released in a certain version has defects and needs to be repaired, for example, component A needs to be repaired, but components B, C, and D do not need to be modified, the R&D personnel can use the configuration management module to send updated compilation parameters to specify that when compiling component A, a certain branch with the latest repair is used for compilation, and components B, C, and D reuse the historical compilation products of the last release. With the above configuration information, the compiled software product only updates component A, while components B, C, and D still retain the same output as the last release. This method effectively avoids the need to compile components B, C, and D again, which results in the output of this compilation being inconsistent with the output of the last release, and may introduce new problems.

[0141] On the technical side, Figure 7 As shown, this is a process flow chart for quickly compiling and publishing large-scale simulation products.

[0142] The system in the embodiment of the present application is mainly composed of a configuration management module, a code management module, a compilation process module, a data management module, a packaging management module, etc.

[0143] The specific steps are as follows:

[0144] 1. Split the product into multiple component modules

[0145] According to the characteristics of software products, large software products are split into multiple component modules with independent functional modules. Each component module can be compiled independently of each other and there is no compilation dependency.

[0146] The principles for splitting software products into component modules are as follows:

[0147] A) The functions of each component module are independent of each other and can provide complete sub-services to the outside world;

[0148] B) Each component module can be compiled and run independently of each other;

[0149] C) There is no interdependent compilation relationship between the component modules, that is, the compilation of component A is not allowed, and it needs to rely on the output of the compilation of component B.

[0150] For example, the stand-alone simulation product of autonomous driving can be divided into multiple independent component modules such as the UI main framework, 2D player, map editor, 3D rendering, traffic flow simulation, high-precision map service, indicator evaluation, simulated millimeter-wave radar, vehicle dynamics, decision planning, vehicle control, etc. Among them, the above-mentioned simulation products refer to autonomous driving simulation software products released to the outside or tested internally, including but not limited to cloud-deployed installation packages, desktop stand-alone installation packages and other software products, technical documents and related data.

[0151] 2. Establish compilation pipelines for each component

[0152] Through the compilation process module of this system, compilation pipelines are established for each component after the above software products are split.

[0153] The specific construction method of the compilation pipeline is as follows:

[0154] A) Each component module needs to provide a docker image as the compilation environment of the component, including but not limited to the docker image link URL, docker image file version number, docker image file integrity check code, user name, password and other information;

[0155] B) The compilation pipeline provides the definition and setting of compilation parameters, environment variables, component code library addresses, compilation steps, and execution commands;

[0156] C) The compilation pipeline provides various compilation information in the fifth step below, and provides an API (application programming interface) for external programs to query;

[0157] D) The compilation pipeline records the execution results of each compilation step, including whether the command is executed successfully, the output of the step, the compilation log, the time taken for each step, and other information.

[0158] 3. Configure the compilation parameters of each component module

[0159] On the compilation pipeline, configure the compilation parameters of different component modules, including but not limited to the code URL path, code branch number, project name number, whether to disable the module, whether to have an encryption lock, module configuration file, module dependency data, etc.

[0160] 4. Distributed compilation component module

[0161] The compilation process module compiles each component in parallel through the distributed compilation system according to the compilation parameters of each component issued by the configuration module. Figure 8 The figure shows a flow chart of distributed compilation processing.

[0162] 1) If Figure 8 As shown, if it is determined to be a new compilation, the component code is immediately pulled and compiled with the latest output according to the specified compilation parameters;

[0163] 2) If Figure 8 As shown, if it is determined to reuse historical output, it is divided into two ways: with a specified historical number or reuse the most recent successful compilation. Both methods can obtain the component output without compilation, greatly improving the compilation efficiency. The details are as follows:

[0164] A) With a specified historical number, you can reuse a specific historical compilation output. It is suitable for scenarios such as recompiling a historical version without difference, updating another component but not updating this component.

[0165] B) If the reuse is most recently successful, the system automatically searches for a historical output that meets the compilation parameters based on the passed compilation parameters, thereby avoiding repeated compilation and saving compilation time and compilation equipment resources.

[0166] For example, Fig. 9 The figure shows a specific example flow chart of distributed compilation. Fig. 9 In the "module_build" step, the sub-compilation pipelines of simcore, simfe, planning, controller, Vehicle dynamic and other components are called, and the sub-pipelines can be compiled independently and concurrently.

[0167] 5. Store compilation information

[0168] When the compilation of each component is completed, the compilation information and configuration information are stored in the data management module. The stored information includes but is not limited to component compilation parameters (such as version number of dependent software, environment information, etc.), component output information (storage path, file size, file hash value, etc.), component code information (branch number, submission number, submitter information, etc.), component configuration information, etc. (such as startup parameters, dependency configuration, etc.).

[0169] Storing the compilation information of each pipeline component makes it easier for other compilation steps to obtain and use relevant information, such as using the historical compilation output method in the fourth step above.

[0170] 6. Integrated assembly software products

[0171] The packaging management module is responsible for assembling the output of each component into a complete software product installation package based on the product configuration information, and attaching the software product's instruction documents, sample codes, demonstration data and other information.

[0172] The specific implementation steps are as follows:

[0173] A) Obtain software product release information, including but not limited to product version number, component module name, instruction document, demonstration code, demonstration software configuration, demonstration data, etc.;

[0174] B) Obtaining the component compilation output from the corresponding component pipeline according to the information of each component to be released;

[0175] C) assembling the component modules and the information files obtained in step A) into a complete software product installation package file by packaging the software;

[0176] D) Send the software product acquisition method to relevant personnel via email, text message, etc.

[0177] The beneficial effects produced by the method in this embodiment include:

[0178] 1. Splitting and concurrently compiling large software products can make full use of distributed systems and concurrent operations to improve compilation efficiency;

[0179] 2. Intelligent reuse of historical outputs not only improves compilation efficiency and saves computing, storage and other resources, but also effectively ensures the product quality of tested components;

[0180] 3. Support re-compilation of historical versions without differences, avoiding differences caused by changes in the compilation environment during re-compilation.

[0181] It should be understood that, although the various steps in the flowcharts involved in the above-mentioned embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps does not have a strict order restriction, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above-mentioned embodiments can include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.

[0182] Based on the same inventive concept, the embodiment of the present application also provides a software product processing device for implementing the software product processing method involved above. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme recorded in the above method, so the specific limitations in the embodiments of the processing device for one or more software products provided below can refer to the limitations of the software product processing method above, and will not be repeated here.

[0183] In one embodiment, Fig.10 As shown, a software product processing device is provided, including: an acquisition module 1002, a division module 1004, a compilation module 1006 and an assembly module 1008, wherein:

[0184] The acquisition module 1002 is used to acquire the compilation parameters corresponding to the product components to be compiled; the product components to be compiled are the components obtained by splitting the target software product.

[0185] The division module 1004 is used to divide the product components to be compiled according to the compilation parameters to obtain a first product component and a second product component.

[0186] The compiling module 1006 is used to compile the first product component to obtain a compilation product corresponding to the first product component.

[0187] The acquisition module 1002 is further configured to acquire the historical compilation artifacts corresponding to the second product component.

[0188] The assembly module 1008 is used to assemble the compilation product and the historical compilation product to obtain a software product installation package.

[0189] In one embodiment, the device also includes: a determination module, used to determine the compilation mode corresponding to each product component in the product components to be compiled based on the compilation type in the compilation parameters; a marking module, used to mark the product components in the product components to be compiled whose compilation mode is a new compilation mode as the first product component; and mark the product components in the product components to be compiled whose compilation mode is a reuse mode as the second product component.

[0190] In one embodiment, the acquisition module is further used to acquire the branch code specified in the compilation parameters corresponding to the first product component; the compilation module is further used to compile the first product component based on the branch code to obtain the compilation output corresponding to the first product component.

[0191] In one embodiment, the device also includes: a construction module, which is used to build a compilation pipeline corresponding to each product component in the product components to be compiled in response to a setting operation triggered in the configuration management interface; the compilation module is also used to compile the first product component according to the branch code in the compilation pipeline corresponding to the first product component to obtain a compilation output corresponding to the first product component.

[0192] In one embodiment, the device also includes: a generation module, which is used to sequentially generate the compilation pipeline corresponding to each product component in the product components to be compiled; a display module, which is used to display the pipeline configuration page of the current product component in response to a parameter setting operation triggered on the compilation pipeline corresponding to the current product component for each product component in the product components to be compiled; a configuration module, which is used to configure pipeline parameters on the pipeline configuration page to obtain the configured compilation pipeline; the pipeline parameters configured in the compilation pipeline include the compilation parameters corresponding to the current product component.

[0193] In one embodiment, the device also includes: an acquisition module is also used to obtain the compilation information recorded in the compilation pipeline corresponding to the first product component when the first product component completes compilation; obtain the pipeline parameters corresponding to the compilation pipeline corresponding to the first product component; a storage module is used to store the compilation information and the pipeline parameters in a data management center so that other compilation processes can obtain the information stored in the data management center.

[0194] In one embodiment, the acquisition module is also used to, when the compilation mode corresponding to the second product component is a reuse mode and there is a specified historical number in the compilation parameters corresponding to the second product component, acquire the historical compilation output corresponding to the second product component based on the historical number; when the compilation mode corresponding to the second product component is a reuse mode and there is no specified historical number in the compilation parameters corresponding to the second product component, acquire the historical compilation output based on the compilation parameters corresponding to the second product component.

[0195] In one embodiment, the acquisition module is further used to acquire product release information corresponding to the target software product; the assembly module is further used to assemble the compilation product, the historical compilation product and the product release information to obtain the installation package file of the target software product.

[0196] In one embodiment, the device further includes: a release module, which is used to release the software product installation package in response to a product release operation; the determination module is also used to determine the target product component to be repaired in the software product installation package when the released target software product needs to be repaired; the acquisition module is also used to obtain update compilation parameters corresponding to the target product component; the compilation module is also used to compile the target product component based on the update compilation parameters to obtain a target compilation output; the assembly module is also used to assemble the target compilation output and historical compilation outputs corresponding to other product components in the target software product to obtain an updated software product installation package.

[0197] In one embodiment, the device also includes: a configuration module is also used to configure personalized compilation parameters in response to a personalized setting operation triggered in a configuration management interface; the personalized compilation parameters belong to the compilation parameters; a sending module is used to send the personalized compilation parameters to a compilation process unit; the compilation module is also used to compile the first product component based on the personalized compilation parameters to obtain a compilation output corresponding to the first product component.

[0198] In one embodiment, the device also includes: a determination module is also used to determine a product sharing method; a startup module is used to start a corresponding communication application based on the product sharing method; a sending module is used to send the method for obtaining the software product installation package to the test end through the communication application, so that the test end can obtain the software product installation package based on the acquisition method and test the software product installation package.

[0199] Each module in the processing device of the above software product can be implemented in whole or in part by software, hardware or a combination thereof. Each module can be embedded in or independent of the processor in the computer device in the form of hardware, or can be stored in the memory in the computer device in the form of software, so that the processor can call and execute the operations corresponding to each module.

[0200] In one embodiment, a computer device is provided. The computer device may be a terminal, and its internal structure diagram may be as follows: Fig.11 As shown. The computer device includes a processor, a memory, an input / output interface, a communication interface, a display unit and an input device. Among them, the processor, the memory and the input / output interface are connected through a system bus, and the communication interface, the display unit and the input device are connected to the system bus through the input / output interface. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The input / output interface of the computer device is used to exchange information between the processor and an external device. The communication interface of the computer device is used to communicate with an external terminal in a wired or wireless manner, and the wireless manner can be implemented through WIFI, a mobile cellular network, NFC (near field communication) or other technologies. When the computer program is executed by the processor, a processing method for a software product is implemented. The display unit of the computer device is used to form a visually visible image, and can be a display screen, a projection device or a virtual reality imaging device. The display screen can be a liquid crystal display screen or an electronic ink display screen. The input device of the computer device can be a touch layer covered on the display screen, or a button, trackball or touchpad set on the computer device casing, or an external keyboard, touchpad or mouse, etc.

[0201] Those skilled in the art will understand that Fig.11 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.

[0202] In one embodiment, a computer device is further provided, including a memory and a processor, wherein a computer program is stored in the memory, and the processor implements the steps in the above method embodiments when executing the computer program.

[0203] In one embodiment, a computer-readable storage medium is provided, storing a computer program, which implements the steps in the above method embodiments when executed by a processor.

[0204] In one embodiment, a computer program product or computer program is provided, the computer program product or computer program includes computer instructions, the computer instructions are stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device performs the steps in the above-mentioned method embodiments.

[0205] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant laws, regulations and standards of relevant countries and regions.

[0206] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in the present application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, etc., but are not limited to this.

[0207] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0208] The above-described embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.

Claims

1. A method for processing a software product, characterized in that: The method comprises: Obtaining compilation parameters corresponding to the product components to be compiled; the product components to be compiled are components obtained by splitting the target software product; Based on the compilation type in the compilation parameter, determine the compilation mode corresponding to each product component in the product components to be compiled; mark the product components in the product components to be compiled whose compilation mode is a new compilation mode as the first product component; mark the product components in the product components to be compiled whose compilation mode is a reuse mode as the second product component; Compiling the first product component to obtain a compilation output corresponding to the first product component; Obtaining historical compilation artifacts corresponding to the second product component; The compilation product and the historical compilation product are assembled to obtain a software product installation package.

2. The method according to claim 1, characterized in that The compiling the first product component to obtain a compilation output corresponding to the first product component includes: Obtaining a branch code specified in a compilation parameter corresponding to the first product component; The first product component is compiled based on the branch code to obtain a compilation product corresponding to the first product component.

3. The method according to claim 2, characterized in that The method further comprises: In response to a setting operation triggered on the configuration management interface, constructing a compilation pipeline corresponding to each product component in the product components to be compiled; The compiling the first product component based on the branch code to obtain a compilation product corresponding to the first product component includes: In the compilation pipeline corresponding to the first product component, the first product component is compiled according to the branch code to obtain a compilation product corresponding to the first product component.

4. The method according to claim 3, characterized in that The constructing of the compiling pipeline corresponding to each product component in the product component to be compiled includes: Generate the compilation pipeline corresponding to each product component in the product component to be compiled in sequence; For each product component in the product components to be compiled, in response to a parameter setting operation triggered on a compiling pipeline corresponding to the current product component, displaying a pipeline configuration page of the current product component; The pipeline parameters are configured on the pipeline configuration page to obtain a configured compilation pipeline; the pipeline parameters configured in the compilation pipeline include compilation parameters corresponding to the current product component.

5. The method according to claim 3, characterized in that: The method further comprises: When the first product component completes compilation, obtaining compilation information recorded in the compilation pipeline corresponding to the first product component; Obtaining pipeline parameters corresponding to the compilation pipeline corresponding to the first product component; The compilation information and the pipeline parameters are stored in a data management center, so that other compilation processes can obtain the information stored in the data management center.

6. The method according to claim 1, characterized in that The obtaining of the historical compilation product corresponding to the second product component includes: When the compilation mode corresponding to the second product component is a reuse mode and a specified historical number exists in the compilation parameters corresponding to the second product component, obtaining a historical compilation product corresponding to the second product component based on the historical number; When the compilation mode corresponding to the second product component is the reuse mode and the specified historical number does not exist in the compilation parameters corresponding to the second product component, the historical compilation product is obtained based on the compilation parameters corresponding to the second product component.

7. The method according to claim 1, characterized in that The step of assembling the compilation product and the historical compilation product to obtain a software product installation package includes: Obtaining product release information corresponding to the target software product; The compilation product, the historical compilation product and the product release information are assembled to obtain an installation package file of the target software product.

8. The method according to any one of claims 1 to 7, characterized in that: The method further comprises: In response to the product release operation, release the software product installation package; When the released target software product needs to be repaired, determining the target product component to be repaired in the software product installation package; Obtaining the repaired branch code and updated compilation parameters corresponding to the target product component; Compile the repaired branch code corresponding to the target product component based on the updated compilation parameters to obtain a target compilation product; The target compilation product and historical compilation products corresponding to other product components in the target software product are assembled to obtain an updated software product installation package.

9. The method according to claim 1, characterized in that: Before obtaining the compilation parameters corresponding to the product component to be compiled, the method further includes: In response to a personalized setting operation triggered on a configuration management interface, a personalized compilation parameter is configured; the personalized compilation parameter belongs to the compilation parameter; Sending the personalized compilation parameters to the compilation process unit; The compiling the first product component to obtain a compilation output corresponding to the first product component includes: The first product component is compiled based on the personalized compilation parameters to obtain a compilation product corresponding to the first product component.

10. The method according to claim 1, characterized in that After assembling the compilation product and the historical compilation product to obtain a software product installation package, the method further includes: Determine how to share the product; Launching a corresponding communication application based on the product sharing method; The method for obtaining the software product installation package is sent to the test end through the communication application, so that the test end obtains the software product installation package based on the acquisition method and tests the software product installation package.

11. A processing device for a software product, characterized in that: The device comprises: An acquisition module, used to acquire compilation parameters corresponding to the product components to be compiled; the product components to be compiled are components obtained by splitting the target software product; A determination module, configured to determine a compilation mode corresponding to each product component in the product component to be compiled based on a compilation type in the compilation parameter; a marking module, used to mark a product component whose compilation mode is a new compilation mode among the product components to be compiled as a first product component; and mark a product component whose compilation mode is a reuse mode among the product components to be compiled as a second product component; A compiling module, used for compiling the first product component to obtain a compilation output corresponding to the first product component; The acquisition module is further used to acquire the historical compilation output corresponding to the second product component; The assembly module is used to assemble the compilation product and the historical compilation product to obtain a software product installation package.

12. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 10 are implemented.

13. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 10 are implemented.

14. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 10 are implemented.

Citation Information

Patent Citations

  • Compiling platform, and compiling method and apparatus

    CN104965748A

  • Target program generation method and device

    CN105843623A

  • Method and apparatus for increasing compilation speed of android system

    CN107656736A

  • Assembly line configuration method and device, computer equipment and storage medium

    CN114047953A