Software release method and device, computer equipment and storage medium

By dividing software release resources into basic and differential data packets and removing duplicate resources, the resource redundancy and time-consuming problems caused by traditional full packets are solved, and efficient software release is achieved.

CN120353494APending Publication Date: 2025-07-22BEIJING BAILONG MAYUN TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510329115.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-19
Publication Date
2025-07-22

AI Technical Summary

Technical Problem

The update package generated by the traditional software release method is a full package, resulting in resource redundancy, time-consuming downloading, and consuming computing resources.

Method used

According to the usage information of the current version and historical version of the target software, the release resources are divided into basic data packets and differential data packets, the same resources in the differential data packets are removed, and only the differential data packets are published.

Benefits of technology

Reduce the volume of update packages, improve release efficiency, and reduce resource redundancy and download time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120353494A_ABST
    Figure CN120353494A_ABST
Patent Text Reader

Abstract

The invention relates to a software release method and device, computer equipment and a storage medium. The method comprises the steps of obtaining corresponding release resources according to a current version of target software, obtaining use information of the release resources according to a historical version of the target software, dividing the release resources into a basic data packet and a difference data packet according to the use information of the release resources, extracting same resources in the basic data packet and the difference data packet, and sending the same resources to the target software; and removing the same resource from the difference data packet, and executing the release of the current version according to the difference data packet after removal. By adopting the method, the volume of the software update package can be reduced, and the publishing efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of information processing technologies, and particularly to a software release method, apparatus, computer device, and storage medium. Background Art

[0002] In today's rapidly developing mobile Internet era, the continuous update of software is the norm. Especially during the process of continuously fixing bugs (program errors), releasing new features, and pushing security patches, the management and release of software versions become particularly complex. Among them, the release of a software version is the process of officially launching a software version that can be put into use after development, testing, etc. to users or a specific target group, involving multiple key steps and aspects.

[0003] The update packages generated by traditional release processes are full packages, which contain all historical data, resulting in resource redundancy, long download times, and the need to decompress the entire file and overwrite the installation, consuming computing resources. Summary of the Invention

[0004] Based on this, in view of the above technical problems, it is necessary to provide a software release method, apparatus, computer device, and storage medium that can reduce the volume of software update packages and improve release efficiency.

[0005] In a first aspect, this application provides a software release method, including:

[0006] Obtain corresponding release resources according to the current version of the target software;

[0007] Obtain usage information of the release resources according to the historical versions of the target software;

[0008] Divide the release resources into a basic data packet and a differential data packet according to the usage information of the release resources;

[0009] Extract the same resources in the basic data packet and the differential data packet;

[0010] Remove the same resources from the differential data packet;

[0011] Perform the release of the current version according to the differential data packet after removal.

[0012] In one of the embodiments, the software release method further includes:

[0013] Obtain a release resource list corresponding to the current iteration cycle;

[0014] Use natural language processing technology to perform keyword analysis on the release resource list and perform similarity matching with the release resources of historical versions;

[0015] Establish an association relationship between the software version and the release resources according to the matching result;

[0016] Obtain the corresponding release resources according to the current version of the target software, including:

[0017] Obtain the release resources according to the association relationship between the release resources and the current version.

[0018] In one embodiment, the software release method further includes:

[0019] Obtain the users corresponding to the current version, and there are multiple users;

[0020] Obtain the configuration files created in advance for the users;

[0021] Generate a resource package corresponding to the user according to the configuration file;

[0022] Execute the release of the current version according to the removed differential data packet, including:

[0023] Integrate the resource package corresponding to the user with the removed differential data packet;

[0024] Release the current version of multiple users according to the integrated data packet.

[0025] In one embodiment, the usage information includes the usage status. Divide the release resources into a basic data packet and a differential data packet according to the usage information of the release resources, including:

[0026] Extract the release resources with the usage status of being in use according to the usage information of the release resources;

[0027] Determine the basic data packet according to the release resources in use;

[0028] Classify the remaining release resources as differential data packets.

[0029] In one embodiment, the usage information further includes the usage frequency. Determine the basic data packet according to the release resources in use, including:

[0030] Obtain the usage frequency of the resources in use;

[0031] Determine the basic data packet according to the usage frequency.

[0032] In one embodiment, extract the same resources in the basic data packet and the differential data packet, including:

[0033] Use the binary difference algorithm to extract the same resources in the basic data packet and the differential data packet.

[0034] In one embodiment, the software release method further includes:

[0035] Obtain the release data of historical versions;

[0036] Train a long short-term memory network time series prediction model based on the release data of historical versions;

[0037] Use the long short-term memory network time series prediction model to predict the error rate of the release task;

[0038] Monitor the current version according to the error rate.

[0039] In a second aspect, a software release device is provided, including:

[0040] A first acquisition module, configured to acquire corresponding release resources according to the current version of the target software;

[0041] A second acquisition module, configured to acquire the usage information of the release resources according to the historical versions of the target software;

[0042] A classification module, configured to classify the release resources into a basic data packet and a differential data packet according to the usage information of the release resources;

[0043] An extraction module, configured to extract the same resources in the basic data packet and the differential data packet;

[0044] An update module, configured to remove the same resources from the differential data packet;

[0045] A release module, configured to perform the release of the current version according to the differential data packet after removal.

[0046] In a third aspect, the present application provides a computer device, including a memory, a processor, and a computer program stored on the memory and executable on the processor. When the processor executes the computer program, the steps of the software release method provided in any embodiment of the first aspect of the present application are implemented.

[0047] In a fourth aspect, the present application provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the software release method provided in any embodiment of the first aspect of the present application are implemented.

[0048] The above software release method, device, computer device and storage medium split the release resources corresponding to the current software version into a basic data packet and a differential data packet. Among them, the basis for splitting is to classify the release resources with usage information as those being used by users into the basic data packet, and the remaining release resources are the differential data packet. Further, the same resources in the basic data packet and the differential data packet are identified, and this part of the resources is removed from the differential data packet. Then, the current version is released according to the differential data packet after removal. Thus, there is no need to release the full package, and only the differential data packet needs to be released, reducing the volume of the update package and improving the software release efficiency. This solves the problems of excessive update package volume, resource redundancy, and long download time caused by releasing the full package in traditional technologies. BRIEF DESCRIPTION OF THE DRAWINGS

[0049] Figure 1 is a schematic flowchart of the software release method in some embodiments;

[0050] Figure 2 is a structural block diagram of the software release device in some embodiments;

[0051] Figure 3 is an internal structure diagram of a computer device in some embodiments. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0052] In order to make the objectives, technical solutions and advantages of the present application clearer, the present application will be further described in detail below with reference to 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.

[0053] In the first aspect, the present application provides a software release method. As Figure 1 shown, taking the application of this method to a server as an example for illustration, it includes the following steps:

[0054] Step S11, obtain the corresponding release resources according to the current version of the target software.

[0055] Among them, the target software refers to the software that needs to be updated in version currently. The current version refers to the version that needs to be released currently.

[0056] The release resources refer to the collection of various files and data generated to enable the software to run properly on different platforms and devices during the software or application release process. It includes various types of files such as executable files, library files, images, audio, video, etc., as well as files such as patch packages and configuration files that assist in the operation and update of the software. These resources are the final form of the software delivered to users, ensuring the functional integrity and stability of the software in different environments.

[0057] Specifically, this application can pre-create a release task. When creating the release task, the user can input basic information such as version information and release targets (e.g., version number, updated content, and target platform, etc.). When creating the task, the server can identify and associate the iterative requirements of the current version, such as new features, Bug fixes, etc. These iterative requirements can come from the team's task management system, requirement documents, or issue tracking systems. Additionally, the server can pre-create a requirement library, enabling the user to select existing iterative requirements for association, avoiding duplicate input or omission of requirements.

[0058] Furthermore, the server obtains the corresponding release resources according to the associated iterative requirements.

[0059] Among them, iterative requirements refer to the requirements for new features to be implemented, fixing known problems, etc. during the software version update process. Release resources are various resources required when releasing a new version to implement these iterative requirements, such as code, configuration files, pictures, etc. Iterative requirements determine the content and direction of release resources. To meet specific iterative requirements (such as adding a payment function), corresponding release resources (payment function-related code, interface configuration, etc.) need to be prepared. Release resources are the specific carriers for implementing iterative requirements. Through the integration and update of these resources, iterative requirements are ultimately realized, and the version update is completed.

[0060] Step S12, obtain the usage information of the release resources according to the historical versions of the target software.

[0061] Among them, the usage information of the release resources can include:

[0062] Resource reference frequency: The number of times the resource is called by different versions (e.g., a certain picture file is cited 8 times in 10 historical versions);

[0063] Device coverage: The proportion of device models supported by the resource;

[0064] Dependency relationship: The coupling degree of the resource with other components (e.g., a certain font file is cited by 3 different components);

[0065] Version lifecycle: The survival duration of the resource in each version;

[0066] Update activity: The modification frequency of the resource (e.g., the payment module is updated monthly, while the basic configuration file is updated quarterly).

[0067] Specifically, the present application records the resource usage details of each historical version in advance, and extracts the usage information of the released resources according to the recorded resource usage details. Exemplarily, assume that the released resources required for the current version include Resource A, Resource B, and Resource C. Then, the usage information of Resource A, Resource B, and Resource C, such as usage frequency, etc., is extracted from the resource usage details of the historical version.

[0068] Step S13: Divide the released resources into a basic data packet and a differential data packet according to the usage information of the released resources.

[0069] Among them, the basic data packet refers to the resource packet in use by the user, which is a relatively stable and general part. It is a basic resource set that each user device needs to have. Regardless of the characteristics of the device (such as different resolutions, operating system versions, etc.), the content of the basic packet is common and basic, and will not change due to different device characteristics. For example, some common icons and core configuration files in an APP (Application) may be in the basic packet.

[0070] The differential data packet is the part relative to the basic packet generated according to the user device information (such as resolution, operating system, etc.). Different devices will have different differential shard packets due to different characteristics. Taking the resolution as an example, a 1080P screen device will have picture shard resources suitable for its resolution display, and a 2K screen device will have picture shard resources suitable for 2K resolution. These resources specifically for different device characteristics are differential shard packets.

[0071] Specifically, the present application can split the released resources into a basic data packet and a differential data packet according to the usage status and usage frequency of the resources.

[0072] Step S14: Extract the same resources in the basic data packet and the differential data packet.

[0073] In the present application, after splitting the released resources into a basic data packet and a differential data packet, there may still be the same resources in the basic data packet and the differential data packet. It is necessary to further identify and extract the same resources in the basic data packet and the differential data packet.

[0074] Specifically, the present application can be based on file hash value comparison. Unzip the basic data packet and the differential data packet to different directories. Use a tool to calculate the hash value for each file and record the file path and hash value. Compare the hash value lists of the two data packets and extract the file paths corresponding to the same hash values. Generate a list of the same resources containing information such as file paths, hash values, and sizes.

[0075] Step S15: Remove the same resources from the differential data packet.

[0076] Among them, removing the same resources from the differential data packet means that during software incremental updates, deleting the resource files that are exactly the same as the base packet from the differential packet (which only contains the content different from the base packet) to reduce the volume of the differential packet and improve the update efficiency.

[0077] Step S16, perform the release of the current version according to the differential data packet after removal.

[0078] Specifically, before the release, this application can check the differential data packet again to ensure that all the same resources that should be removed have been successfully removed, and the data packet only contains the content different from the base version. It can be verified by means such as file comparison tools or recalculating file hash values.

[0079] Furthermore, ensure that the server has the ability to handle differential updates, and configure the corresponding server software and environment parameters, such as the storage and network access permissions of the update server.

[0080] Furthermore, deploy the differential data packet to the official update server to ensure that users can obtain the update through the in-app update mechanism or directly from the server.

[0081] Furthermore, inform users that a new version is available through in-app notifications, push notifications, emails, etc., and explain the main content and improvements of the update.

[0082] In one of the embodiments, the software release method may further include: obtaining the release resource list corresponding to the current iteration cycle, performing keyword analysis on the release resource list using natural language processing technology, and performing similarity matching with the release resources of the historical version. Establish an association relationship between the software version and the release resources according to the matching result, and obtain the corresponding release resources according to the current version of the target software, including: obtaining the release resources according to the association relationship between the release resources and the current version.

[0083] Among them, the current iteration cycle refers to the time period of the ongoing round of development, improvement, and testing. Generally, the current iteration cycle can correspond to the release of the current software version.

[0084] An iteration cycle usually has clear goals, such as completing the development of specific functions, fixing some known problems, optimizing the product, etc. During this cycle, the team will carry out a series of work according to the plan. At the end of the cycle, a deliverable result (which may be partially deliverable or fully deliverable) will be produced. This result can be a new software version, a new feature module of the product, etc. Then enter the next iteration cycle and continue to improve and perfect the product. For example, a software project adopts the agile development model, with one week as an iteration cycle. In the current week, the task of the team is to complete the pre-planned development, testing, etc. work, and this week is the current iteration cycle.

[0085] Specifically, the present application can obtain the list of release resources corresponding to the current iteration cycle. The release resources here may include code files, documents, configuration files, etc. Use natural language processing techniques (such as word segmentation, part-of-speech tagging, keyword extraction algorithms, etc.) to process the list of release resources, and extract the keywords therein. Calculate the similarity and match the extracted keywords with the release resources of the historical version to determine the similarity between the current release resources and the historical version release resources. According to the result of the similarity match, establish the corresponding association relationship between the software version and the release resources, and record the release resource situation corresponding to each software version. When it is necessary to obtain the release resources corresponding to the current version of the target software, find and obtain these release resources based on the association relationship established previously.

[0086] Specifically, the present application can also associate the software version with the iteration requirements, and then associate the software version with the release resources according to the corresponding relationship between the iteration requirements and the release resources. Among them, one requirement can correspond to one or more release resources.

[0087] The beneficial effects of this embodiment are as follows:

[0088] Realize automatic association of multiple versions: In the traditional technology, it is necessary to manually bind the version and requirements one by one, resulting in cumbersome operations, low efficiency and easy occurrence of version and requirement mismatch problems. In the present application, by pre-creating the association relationship between the version and the release resources, multiple versions can be automatically associated, improving the release efficiency of the version.

[0089] Improve resource management efficiency: By establishing the association relationship between the software version and the release resources, it is convenient to quickly locate and obtain the release resources required for a specific software version, reducing the time and effort for resource search.

[0090] Enhanced version traceability: It is possible to clearly understand the release resource situation corresponding to each software version, which helps to trace and manage the history of the software version, facilitating problem troubleshooting and maintenance.

[0091] Assist in decision-making: In the process of software release and management, through the analysis and association of release resources, the change situation of the software version can be better evaluated, providing data support for decision-making.

[0092] In one of the embodiments, the software release method may further include: obtaining the users corresponding to the current version, where there are multiple users, obtaining the configuration files pre-created for the users, generating the resource packages corresponding to the users according to the configuration files, and performing the release of the current version according to the removed differential data packets, including: integrating the resource packages corresponding to the users with the removed differential data packets, and releasing the current version of multiple users according to the integrated data packets.

[0093] Among them, the user refers to different entities using the target software, and these entities may have their own unique brand identities, styles, and requirements. Exemplarily, the users of the target software can be brand owners. A brand owner can be understood as an entity with a specific market position, user group, and brand image, such as different mobile phone manufacturers, different Internet service providers, etc. They use the same basic software but customize the software according to their own brand characteristics. Specifically, one user can correspond to one or more software, corresponding to one or more versions of the same software.

[0094] A configuration file refers to a file used to store and manage specific information and parameters related to the user. It usually exists in formats such as XML and JSON. Specifically, the configuration file can include basic user information (such as name, identifier, etc.), UI (User Interface) theme-related configurations (such as color scheme, font style), function module configurations, business logic configurations, and data interface configurations, etc.

[0095] In this application, the server can pre-create a release task. When creating a release task, the user can input basic information such as version information and release target (for example: version number, update content, target platform, etc.). Further, the server can associate the release task with the iterative requirements, and further obtain the users of the current version. When there are multiple users, associate the multiple users with the release task to facilitate the subsequent release of the current version for multiple users, that is, cross-user version release.

[0096] Further, by identifying the configuration file of each user (such as app_config.xml), the requirements and characteristics of different users are distinguished. The configuration file records various information related to the user, such as UI settings, function enabling status, etc. According to the information in the configuration file, the corresponding resources are extracted and integrated to generate a user-exclusive resource package. The resource packages of different users contain software resources that conform to their characteristics, such as specific interface pictures, function codes, etc.

[0097] Further, the resource packages corresponding to each user are integrated with the differential data packets, and the release of the current version used by each user is realized according to the integrated data packets, achieving the synchronous release of the current versions corresponding to different users, that is, cross-user version release.

[0098] In addition, the present application can also establish an automatic association mechanism. According to the user and version information, the release tasks across different users are automatically matched and associated to ensure that the software version update for each user can accurately correspond to their needs and tasks. Among them, the release task refers to the task of releasing the current version. The release task across different users refers to the software version update task that is synchronized among multiple different users (such as different mobile phone manufacturers, Internet platforms, etc.). Each user may need to customize and adjust the basic software due to differences in UI themes, functional modules, business logic, etc. The core of the release task across different users is to associate the version update requirements of different users with the corresponding configuration files and resource packages through an automated mechanism to achieve the efficient synchronous release of software versions for multiple users.

[0099] Example: An application needs to be adapted to User A (who emphasizes the dark mode) and User B (who emphasizes social functions) at the same time. The server can identify the configuration files of the two users, generate their respective resource packages, and synchronously complete the version iteration of the two users without manually binding tasks one by one.

[0100] The beneficial effect of this embodiment is that by creating resource packages corresponding to each user, adapting to the characteristics of different users, integrating the resource packages corresponding to each user with the removed differential data packets, and performing data release based on the integrated data packets, the synchronous release of the current versions of different users can be achieved, realizing the software version release across different users, and solving the problem in the traditional technology that it is impossible to automatically associate multi-version and cross-brand iteration tasks, and manual binding of versions and requirements one by one is required, resulting in cumbersome operations and low efficiency.

[0101] In one embodiment, the usage information includes the usage status. The release resources are divided into a basic data packet and a differential data packet according to the usage information of the release resources, including:

[0102] Extract the release resources with the usage status of "in use" according to the usage information of the release resources, determine the basic data packet based on the release resources in use, and classify the remaining release resources as differential data packets.

[0103] Among them, the usage status refers to whether it is in the state of being used by the user. The release resources in use refer to the resources that have been sent to the application market. Specifically, the release resources in use refer to the resources that have been released to the application market. That is to say, these resources are released to the application market along with the software and are downloaded and used by users, and are in the state of being used. For example, the core code files, important configuration files, and resources related to the online function modules in a software. As long as the software has been released to the application market and these resources will be called during the software operation, then these resources belong to the resources used by the user.

[0104] Specifically, for users, when an APP has been released to the app market, it means that users can obtain and use the relevant resources of this APP in the app market. These resources include the APP installation package, various functions and content provided within the application, etc. Users can download and install the APP and start using it, enjoying the services it provides, as if these resources are already in a "being used" state and are available for users to call at any time.

[0105] From the perspective of APP developers or operators, after releasing the APP to the app market, it is defaulted that these APP resources are already in the process of being used by users. Developers need to ensure that these resources can be provided to users normally, manage and maintain the APP versions in the app market, and pay attention to data such as download volume and user feedback. Because from the moment of release, it is considered that these resources have entered the link of being used by users and may be accessed and used by a large number of users at any time, so it is necessary to ensure their stability and availability.

[0106] Specifically, for a specific target software, it has a series of historical versions (for example, the software has developed from version 1.0 to version 5.0, and versions such as 1.0 and 2.0 are historical versions).

[0107] To better manage and understand the situation of each version, corresponding data records have been created in advance for each historical version. These data records are like individual files, which detail the usage information (such as whether the resource is being used, usage frequency, etc.) corresponding to each release resource (release resources can be various components such as software code files, pictures, documents, etc.) in that version.

[0108] Furthermore, when it is necessary to determine which release resources in a certain historical version are in a being-used state, the usage information in the data record of the corresponding version can be viewed and judgments can be made based on this information. For example, if the usage information of a certain code file in the data record shows "being called", it can be determined that this code file is a release resource in use. Thus, it can be classified into the basic data packet.

[0109] The beneficial effects of this embodiment are as follows:

[0110] Optimize resource management and transmission: By dividing release resources into basic data packets and differential data packets, resources that are already in use (basic data packets) can be relatively stably retained and managed, while newly changed or unused resources (differential data packets) are processed separately. In subsequent update, transmission and other operations, for the basic data packets that are already in use, duplicate processing can be reduced, and only the differential data packets are focused on for processing, thereby saving traffic, time, etc. of resource transmission and improving the efficiency of resource management and transmission.

[0111] Facilitate version management and maintenance: Clearly distinguish between the basic data packet and the differential data packet, which can more clearly understand which resources in the software version are stably present and used, and which are newly added or changed. This helps the development team with version management and maintenance. When performing software updates, rollbacks, etc., corresponding resources can be processed more accurately, reducing the complexity of version management.

[0112] Improve release efficiency: Due to the optimized resource management and transmission, when performing software updates, users may obtain the new differential data packet faster, reducing waiting time, and the basic data packet remains stable, reducing the probability of errors during the update process affecting normal use.

[0113] In one embodiment, the usage information further includes the usage frequency. Determining the basic data packet according to the released resources in use includes: obtaining the usage frequency of the resources in use, and determining the basic data packet according to the usage frequency.

[0114] Specifically, based on the division of the released resources by usage status in this application, the method for determining the basic data packet is further refined. It is known that the usage information includes the usage status and the usage frequency. After extracting the released resources with the usage status of "in use", then consider the usage frequency of these resources in use, and finally determine which resources constitute the basic data packet according to the usage frequency.

[0115] Specifically, for the released resources that have been determined to be "in use", obtain their respective usage frequency information. For example, the number of times or time that each resource is called can be recorded and statistically analyzed through the monitoring mechanism during the software operation process to quantify the usage frequency.

[0116] Furthermore, based on the obtained usage frequency information, set certain criteria or rules to determine which "in use" resources should be included in the basic data packet. For example, resources with a usage frequency higher than a certain threshold can be set as components of the basic data packet; or sort the resources according to the usage frequency from high to low, and select the top several percentages of resources as the basic data packet.

[0117] The beneficial effects of this embodiment are as follows:

[0118] Optimize resource allocation: By determining the basic data packet through the usage frequency, more frequently used and more core resources can be preferentially included in the basic data packet. In subsequent software updates, deployments, etc., the stability and availability of these high-frequency used resources can be key guaranteed, improving the software operation efficiency and reasonably allocating system resources.

[0119] Reduce transmission costs: Resources with low usage frequency are not included in the basic data packet. When transmitting resources (such as pushing resources to the user side during software updates), unnecessary data transmission volume can be reduced, network transmission costs can be lowered, and the user's traffic and download time can be saved.

[0120] Since the basic data packet contains frequently used resources, during the software operation process, these resources can be quickly loaded and called, reducing the user's waiting time and improving the software's response speed and fluency.

[0121] After clarifying the composition of the basic data packet, the development team can manage and optimize the basic data packet more targeted during software maintenance and upgrade, and at the same time, separately process the differential data packets with low usage frequency, reducing the complexity and workload of maintenance.

[0122] In one embodiment, extract the same resources in the basic data packet and the differential data packet, including: using the binary difference algorithm to extract the same resources in the basic data packet and the differential data packet.

[0123] Among them, the core idea of the binary difference algorithm is to find the same parts and different parts between two binary files (which can be understood here as the binary representation forms corresponding to the basic data packet and the differential data packet) by comparing the differences between them. Specifically, it will compare the two files byte by byte, record the positions where the byte values are the same and the positions where the byte values are different. For the same byte sequence, it can be determined as the same resource part in the two data packets. In this way, the duplicate data between the two data packets can be accurately identified at the binary level, so as to achieve the purpose of data comparison and analysis.

[0124] In this application, after splitting the released resources into the basic data packet and the differential data packet, since there are still some released resources that exist in both the basic data packet and the differential data packet, in order to further find out this part of the same released resources, this application uses the binary difference algorithm to operate and find out the same resources among them.

[0125] Specifically, this application can convert the basic data packet and the differential data packet into binary forms for the binary difference algorithm to process. For example, various files in the data packet (such as code files, image files, etc.) can be converted according to their corresponding binary coding rules.

[0126] Furthermore, use the binary difference algorithm to compare the two converted binary data packets byte by byte. The algorithm will record the positions and regions where the byte values in the two data packets are the same during the comparison process. According to the comparison results of the algorithm, extract the resources corresponding to the regions where the byte values in the two data packets are the same. These extracted resources are the same parts in the two data packets.

[0127] The beneficial effects of this embodiment are as follows:

[0128] Data redundancy reduction: By extracting the same resources in the base data packet and the differential data packet, it is possible to avoid repeated processing of these same resources during operations such as storage and transmission, thereby reducing data redundancy and saving storage space and transmission bandwidth.

[0129] Optimizing the software update process: In the software update scenario, knowing which resources are the same in the base data packet and the differential data packet allows only the different parts to be transmitted or processed, accelerating the software update speed. At the same time, it also reduces the risk of errors that may occur during the update process because the same resources do not need to be reprocessed and verified.

[0130] In one of the embodiments, the software release method may further include: obtaining the release data of the historical version, training a long short-term memory network time series prediction model based on the release data of the historical version, using the long short-term memory network time series prediction model to predict the error rate of the release task, and monitoring the current version according to the error rate.

[0131] Among them, the long short-term memory network (LSTM) time series prediction model is a special type of recurrent neural network (RNN). Its core is the memory unit, which can selectively store and forget information. It controls the flow of information through the input gate, forget gate, and output gate, can capture long-term dependencies in the time series, and effectively process data with sequentiality and temporal correlation.

[0132] In this application, the long short-term memory network time series prediction model is used to predict the error rate of the release task based on the historical version release data, can mine the time series features and potential patterns in the data, and provide a basis for monitoring the current version.

[0133] In this application, the server first obtains the historical version release data, trains the LSTM time series prediction model with this data to enable it to learn the relationship between the release data and the error rate, then uses the trained model to predict the error rate of the current release task, and monitors the current version based on the error rate to discover problems in a timely manner.

[0134] Among them, the error rate refers to the proportion of the number of tasks with errors in the released tasks to the total number of released tasks, which can reflect the quality and stability of the release process. The calculation method may be different in different scenarios, such as calculating by the number of releases, functional modules, etc. In addition, this application can also predict indicators such as the crash rate and the request success rate. Among them, the crash rate refers to the ratio of the number of crashes of the software or system to the total number of runs or the total usage duration within a certain period of time or in a certain usage scenario. It is an important indicator to measure the stability of the software or system. For example, if there are 10 crashes in 1000 software startups, the crash rate is 1%.

[0135] Specifically, the steps of training the long short-term memory network time series prediction model may include:

[0136] Collect and organize historical version release data, including various factors that may affect the error rate, such as the number of code lines, functional complexity, etc., and perform preprocessing such as data cleaning and normalization. Determine the structure of the LSTM network, such as the number of layers, the number of neurons, etc., add an input layer, an LSTM layer, a fully connected layer, etc., and set the loss function and optimizer. Divide the preprocessed data into a training set and a validation set, use the training set to train the model, adjust the model parameters through the backpropagation algorithm, evaluate the model performance on the validation set, and adjust the hyperparameters according to the results. Evaluate the trained model with the test set, calculate indicators such as accuracy and mean squared error, and judge the generalization ability of the model.

[0137] Specifically, this application can obtain historical version release data from data sources such as databases. Train the LSTM model according to the above training method. Input the data related to the current version into the trained model to obtain the error rate prediction result. According to the predicted error rate, set a threshold, etc. for monitoring the current version. If the predicted value exceeds the threshold, the system automatically triggers a pre-release rollback strategy. Among them, the rollback strategy refers to a series of operations and rules for restoring the system or software version to a previous stable state when certain abnormal situations occur (such as the predicted value exceeding the threshold) during software release and other processes. It usually includes stopping the current release process, canceling some or all of the changes that have been made, and returning the system to the state before pre-release to avoid more serious problems that may occur and ensure the stability and availability of the system.

[0138] The beneficial effects of this embodiment are as follows: It can predict the error rate in advance, enabling the team to take measures in advance to reduce the impact of problems. It helps to analyze the causes of errors, optimize the release process, and reduce the future error rate.

[0139] In the second aspect, this application provides a software release device, as Figure 2 shown. The software release device includes: a first acquisition module 21, a second acquisition module 22, a classification module 23, an extraction module 24, an update module 25, and a release module 26, where:

[0140] The first acquisition module 21 is configured to acquire corresponding release resources according to the current version of the target software;

[0141] The second acquisition module 22 is configured to acquire usage information of the release resources according to the historical version of the target software;

[0142] The classification module 23 is configured to divide the release resources into a basic data packet and a differential data packet according to the usage information of the release resources;

[0143] The extraction module 24 is configured to extract the same resources from the basic data packet and the differential data packet;

[0144] The update module 25 is configured to remove the same resources from the differential data packet;

[0145] The release module 26 is configured to perform the release of the current version according to the differential data packet after removal.

[0146] In some embodiments, the above-mentioned first acquisition module 21 may: acquire a release resource list corresponding to the current iteration cycle, perform keyword analysis on the release resource list by using natural language processing technology, and perform similarity matching with the release resources of the historical version, establish an association relationship between the software version and the release resources according to the matching result, and acquire the release resources according to the association relationship between the release resources and the current version.

[0147] In some embodiments, the above-mentioned first acquisition module 21 may: acquire the users corresponding to the current version, where there are multiple users, acquire the configuration files created in advance for the users, generate resource packages corresponding to the users according to the configuration files, and the update module 25 may integrate the resource packages corresponding to the users with the differential data packet after removal, and perform the release of the current version for multiple users according to the integrated data packet.

[0148] In some embodiments, the usage information includes the usage status. The classification module 23 may extract the release resources with the usage status of being in use according to the usage information of the release resources, determine the basic data packet according to the release resources in use, and classify the remaining release resources as differential data packets.

[0149] In some embodiments, the usage information further includes the usage frequency. The classification module 23 may acquire the usage frequency of the resources in use, and determine the basic data packet according to the usage frequency.

[0150] In some embodiments, the extraction module 24 may use the binary difference algorithm to extract the same resources from the basic data packet and the differential data packet.

[0151] In some of these embodiments, the first acquisition module 21 may acquire the release data of the historical version, train a long short-term memory network time series prediction model based on the release data of the historical version, use the long short-term memory network time series prediction model to predict the error rate of the release task, and monitor the current version according to the error rate.

[0152] In a third aspect, the present application provides a computer device, which includes a memory, a processor, and a computer program stored on the memory and executable on the processor. When the processor executes the computer program, the steps of the software release method provided in any one of the embodiments of the first aspect of the present application are implemented.

[0153] In one embodiment, the computer device may be a server, and its internal structure diagram may be as Figure 3 shown. The computer device includes a processor, a memory, a network interface, and a database connected through a system bus. 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 network interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, the software release method is implemented.

[0154] In a fourth aspect, the present application provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the software release method provided in any one of the embodiments of the first aspect of the present application are implemented.

[0155] The computer-readable storage medium may be Figure 3 the computer-readable storage medium in the computer device shown.

[0156] Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be completed by instructing relevant hardware through a computer program. The above 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 various methods. Among them, any reference to a memory, storage, database, or other medium used in the various embodiments provided in the present application can include non-volatile and / or volatile memories. Non-volatile memories can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memories can include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in various forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), Rambus direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and Rambus dynamic RAM (RDRAM), etc.

[0157] The technical features of the above embodiments can be combined arbitrarily. For the sake of brevity of description, 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, it should be considered as the scope recorded in this specification.

[0158] The above embodiments only represent several implementation manners of the present application. The description is relatively specific and detailed, but it should not be construed as a limitation on the scope of the invention patent. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present application, several modifications and improvements can still be made, and these all belong to the protection scope of the present application. Therefore, the protection scope of the patent of the present application should be subject to the appended claims.

Claims

1. A software release method, characterized in that The method includes: Obtaining the corresponding release resources according to the current version of the target software; Obtaining the usage information of the release resources according to the historical versions of the target software; Dividing the release resources into a basic data packet and a differential data packet according to the usage information of the release resources; Extracting the same resources in the basic data packet and the differential data packet; Removing the same resources from the differential data packet; Performing the release of the current version according to the differential data packet after removal.

2. The method according to claim 1, characterized in that, The method further includes: Obtaining a list of release resources corresponding to the current iteration cycle; Performing keyword analysis on the list of release resources by using natural language processing technology, and performing similarity matching with the release resources of the historical version; Establishing an association relationship between the software version and the release resources according to the matching result; The obtaining the corresponding release resources according to the current version of the target software includes: Obtaining the release resources according to the association relationship between the release resources and the current version.

3. The method according to claim 1, characterized in that, The method further includes: Obtaining the users corresponding to the current version, where there are multiple users; Obtaining the configuration files created in advance for the users; Generating a resource packet corresponding to the users according to the configuration files; The performing the release of the current version according to the differential data packet after removal includes: Integrating the resource packet corresponding to the users with the differential data packet after removal; Performing the release of the current version of the multiple users according to the integrated data packet.

4. The method according to claim 1, wherein The usage information includes a usage status. The dividing the release resources into a basic data packet and a differential data packet according to the usage information of the release resources includes: Extracting the release resources with the usage status of being in use according to the usage information of the release resources; Determining the basic data packet according to the release resources being in use; Classifying the remaining release resources as the differential data packet.

5. The method according to claim 4, wherein The usage information further includes a usage frequency. The determining the basic data packet according to the release resources being in use includes: Obtaining the usage frequency of the resources being in use; Determining the basic data packet according to the usage frequency.

6. The method according to claim 1, wherein The extracting the same resources in the basic data packet and the differential data packet includes: Extracting the same resources in the basic data packet and the differential data packet by using a binary difference algorithm.

7. The method according to claim 1, characterized in that, The method further includes: Obtaining the release data of the historical version; Training a long short-term memory network time series prediction model according to the release data of the historical version; Predicting the error rate of the release task by using the long short-term memory network time series prediction model; Monitoring the current version according to the error rate.

8. A software release device, characterized in that, The device includes: A first obtaining module, configured to obtain the corresponding release resources according to the current version of the target software; A second obtaining module, configured to obtain the usage information of the release resources according to the historical versions of the target software; A classification module, configured to divide the release resources into a basic data packet and a differential data packet according to the usage information of the release resources; An extraction module, configured to extract the same resources in the basic data packet and the differential data packet; An update module, configured to remove the same resources from the differential data packet; A release module, configured to perform the release of the current version according to the differential data packet after removal.

9. A computer device, comprising a memory, a processor, and a computer program stored on the memory and executable on the processor, characterized in that, When the processor executes the computer program, the steps of the method according to any one of claims 1 to 7 are implemented.

10. 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 7 are implemented.