Grayscale publishing method, device, system, electronic device and storage medium

By using the grayscale release method when updating the basic library, different compilation dependency version relationships are sent according to the account type, the problem of users being affected after the update of the basic library version is solved, and the intelligent grayscale release and stability guarantee of the basic library is realized.

CN115098150BActive Publication Date: 2025-02-25BEIJING DAJIA INTERNET INFORMATION TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210576887.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-05-25
Publication Date
2025-02-25
Estimated Expiration
2042-05-25

AI Technical Summary

Technical Problem

After the basic library version is updated, directly forcing the business team to use the new version will cause a large number of users to be affected, and the process of rolling back and recompiling the old version is complicated and reduces the user experience.

Method used

The grayscale publishing method is adopted to generate the basic library of old and new versions, and send different compilation dependency version relationships according to the account type (grayscale account or non-grayscale account), to achieve intelligent grayscale publishing of the basic library.

Benefits of technology

It realizes intelligent grayscale release of the basic library, ensuring that the basic library user accounts can use the new version of the basic library as soon as possible, and at the same time ensures the stability of the basic library release and reduces user experience problems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115098150B_ABST
    Figure CN115098150B_ABST
Patent Text Reader

Abstract

The present disclosure relates to a grayscale publishing method, device, system, electronic device and storage medium. The method is applied to a grayscale publishing system. The method includes: a publishing management subsystem generates a first basic library and a second basic library, and sends a grayscale publishing task request to the grayscale publishing subsystem; the grayscale publishing subsystem sends an update compilation dependency request; the compilation dependency management subsystem generates compilation dependency version relationships corresponding to different basic libraries, determines the target compilation dependency version relationship corresponding to the basic library user account based on the account type corresponding to the basic library user account, and sends the target compilation dependency version relationship to the basic library user account; the publishing management subsystem sends the basic library corresponding to the target compilation dependency version relationship to the basic library user account. The grayscale publishing of the basic library is realized intelligently, and the stability of the basic library publishing can be guaranteed while ensuring that the basic library user account can use the new version of the basic library as soon as possible.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer application technology, and in particular to a grayscale publishing method, device, system, electronic device and storage medium. Background Art

[0002] The basic library is used to handle a series of framework logics such as data binding, component system, event system, communication system, etc., so that the program can run in an orderly manner. The basic library is usually maintained by the infrastructure team, and these basic libraries are provided to the business team for use. When the infrastructure team updates the basic library version, it needs to release the updated basic library for use by the business team.

[0003] In related technologies, in order to promote the updated version of the basic library, the infrastructure team directly forces the business team to always use the updated version of the basic library. Once a problem occurs in the updated version of the basic library, it will affect a large number of users in the business team. In addition, the updated version of the basic library needs to be rolled back, and users need to recompile the old version of the basic library to go online again, which greatly reduces the user experience. Summary of the invention

[0004] In order to solve the technical problems existing in the related art, the embodiments of the present disclosure provide a grayscale release method, device, system, electronic device and storage medium. The technical solutions of the present disclosure are as follows:

[0005] According to a first aspect of an embodiment of the present disclosure, a grayscale publishing method is provided, which is applied to a grayscale publishing system, wherein the grayscale publishing system includes a publishing management subsystem, a grayscale publishing subsystem, and a compilation dependency management subsystem, and the method includes:

[0006] When the publishing management subsystem receives the basic library grayscale publishing instruction from the basic library publishing account, it generates a first basic library and a second basic library, and sends a grayscale publishing task addition request to the grayscale publishing subsystem; the second basic library is the basic library after the first basic library is updated;

[0007] When the grayscale publishing subsystem receives the request to add a grayscale publishing task, it sends a request to update the compilation dependency to the compilation dependency management subsystem;

[0008] When the compilation dependency management subsystem receives a request to send an update compilation dependency, a first compilation dependency version relationship corresponding to the first basic library and a second compilation dependency version relationship corresponding to the second basic library are generated; the first compilation dependency version relationship is used to characterize the relationship between versions of each basic library on which the first basic library depends, and the second compilation dependency version relationship is used to characterize the relationship between versions of each basic library on which the second basic library depends;

[0009] When the compilation dependency management subsystem receives a basic library compilation request from a basic library usage account, based on the account type corresponding to the basic library usage account, the target compilation dependency version relationship corresponding to the basic library usage account is determined; when the account type is a grayscale account, the target basic library version dependency relationship is a first compilation dependency version relationship, and when the account type is a non-grayscale account, the target basic library version dependency relationship is a second compilation dependency version relationship;

[0010] The compile dependency management subsystem sends the target compile dependency version relationship to the basic library usage account;

[0011] The release management subsystem sends the basic library corresponding to the target compilation dependency version relationship to the basic library usage account.

[0012] Optionally, the method further includes:

[0013] The compilation dependency management subsystem obtains the account name of the basic library user account;

[0014] The compilation dependency management subsystem determines a first hash value corresponding to the account name by using a target hash algorithm;

[0015] The compilation dependency management subsystem performs preset processing on the first hash value to obtain a second hash value corresponding to the account name;

[0016] The compilation dependency management subsystem compares the second hash value with the first grayscale ratio;

[0017] The compilation dependency management subsystem determines the account type of the basic library usage account based on the size relationship between the second hash value and the first grayscale ratio.

[0018] Optionally, the compilation dependency management subsystem determines the account type of the basic library user account based on the size relationship between the second hash value and the first grayscale ratio, including:

[0019] When the second hash value is less than the first grayscale ratio, the compilation dependency management subsystem determines that the account type of the basic library use account is a grayscale account;

[0020] When the second hash value is greater than the first grayscale ratio, the compilation dependency management subsystem determines that the account type of the basic library usage account is a non-grayscale account.

[0021] Optionally, the method further includes:

[0022] When the grayscale publishing subsystem receives the grayscale publishing instruction of the basic library, determining a second grayscale ratio, and increasing the second grayscale ratio at every preset time interval;

[0023] Before the compile dependency management subsystem compares the second hash value with the first grayscale ratio, the compile dependency management subsystem obtains the second grayscale ratio from the grayscale publishing subsystem, and determines the obtained second grayscale ratio as the first grayscale ratio.

[0024] Optionally, the method further includes:

[0025] When an exception occurs in the compilation of the basic library by the basic library user account, the release management subsystem generates exception information indicating that an exception occurs in the compilation of the basic library;

[0026] The publishing management subsystem sends the abnormal information to the basic library publishing account, and sends a request to stop the grayscale publishing to the grayscale publishing subsystem;

[0027] When receiving the request to stop the grayscale publishing, the grayscale publishing subsystem stops the grayscale publishing of the second basic library.

[0028] According to a second aspect of an embodiment of the present disclosure, a grayscale publishing device is provided, which is applied to a grayscale publishing system, wherein the grayscale publishing system includes a publishing management subsystem, a grayscale publishing subsystem and a compile dependency management subsystem; the publishing management subsystem includes a basic library generation module and a basic library sending module, the grayscale publishing subsystem includes a compile dependency update request sending module, and the compile dependency management subsystem includes a compile dependency version relationship generation module, a compile dependency version relationship determination module and a target compile dependency version relationship sending module:

[0029] The basic library generation module is configured to generate a first basic library and a second basic library when the release management subsystem receives a basic library grayscale release instruction from a basic library release account, and send a grayscale release task request to the grayscale release subsystem; the second basic library is a basic library after the first basic library is updated;

[0030] The compile dependency update request sending module is configured to execute, when the phased release subsystem receives a request to add a phased release task, sending a compile dependency update request to the compile dependency management subsystem;

[0031] The compile dependency version relationship generation module is configured to generate a first compile dependency version relationship corresponding to the first basic library and a second compile dependency version relationship corresponding to the second basic library when the compile dependency management subsystem receives a request to update the compile dependency; the first compile dependency version relationship is used to characterize the relationship between the versions of each basic library on which the first basic library depends, and the second compile dependency version relationship is used to characterize the relationship between the versions of each basic library on which the second basic library depends;

[0032] The compile dependency version relationship determination module is configured to determine the target compile dependency version relationship corresponding to the basic library user account based on the account type corresponding to the basic library user account when the compile dependency management subsystem receives a basic library compile request from the basic library user account; when the account type is a grayscale account, the target basic library version dependency relationship is a first compile dependency version relationship, and when the account type is a non-grayscale account, the target basic library version dependency relationship is a second compile dependency version relationship;

[0033] The target compilation dependency version relationship sending module is configured to execute sending the target compilation dependency version relationship to the basic library usage account;

[0034] The basic library sending module is configured to execute sending of the basic library corresponding to the target compilation dependency version relationship to the basic library user account.

[0035] Optionally, the compilation dependency management subsystem further includes an account name acquisition module, a first hash value determination module, a second hash value determination module, a data comparison module and an account type determination module;

[0036] The account name acquisition module is configured to execute acquisition of the account name of the account used by the basic library;

[0037] The first hash value determination module is configured to determine a first hash value corresponding to the account name by executing a target hash algorithm;

[0038] The second hash value determination module is configured to perform a preset process on the first hash value to obtain a second hash value corresponding to the account name;

[0039] The data comparison module is configured to compare the second hash value with the first grayscale ratio;

[0040] The account type determination module is configured to determine the account type of the basic library usage account based on the size relationship between the second hash value and the first grayscale ratio.

[0041] Optionally, the account type determination module is specifically configured to execute:

[0042] When the second hash value is less than the first grayscale ratio, determining that the account type of the basic library user account is a grayscale account;

[0043] When the second hash value is greater than the first grayscale ratio, it is determined that the account type of the basic library usage account is a non-grayscale account.

[0044] Optionally, the grayscale publishing subsystem further includes a second grayscale ratio determination module, and the compilation dependency management subsystem further includes a first grayscale ratio determination module;

[0045] The second grayscale ratio determination module is configured to determine the second grayscale ratio when the grayscale publishing subsystem receives the grayscale publishing instruction of the basic library, and increase the second grayscale ratio at every preset time interval;

[0046] The first grayscale ratio determination module is configured to obtain the second grayscale ratio from the grayscale publishing subsystem before the data comparison module of the compilation dependency management subsystem compares the second hash value with the first grayscale ratio, and determine the obtained second grayscale ratio as the first grayscale ratio.

[0047] Optionally, the release management subsystem further includes an exception information generating module, an exception information sending module and a grayscale release stop request sending module, and the grayscale release subsystem further includes a grayscale release stop module:

[0048] The exception information generating module is configured to generate exception information indicating that an exception occurs when the basic library is compiled by the basic library using account;

[0049] The abnormal information sending module is configured to send the abnormal information to the basic library publishing account;

[0050] The grayscale publishing stop request sending module is configured to execute sending a grayscale publishing stop request to the grayscale publishing subsystem;

[0051] The grayscale publishing stopping module is configured to stop grayscale publishing of the second basic library upon receiving the grayscale publishing stopping request.

[0052] According to a third aspect of an embodiment of the present disclosure, a grayscale publishing system is provided, including: a publishing management subsystem, a grayscale publishing subsystem and a compilation dependency management subsystem;

[0053] The release management subsystem is configured to generate a first basic library and a second basic library upon receiving a basic library grayscale release instruction from a basic library release account, and send a grayscale release task add request to the grayscale release subsystem; the second basic library is a basic library after the first basic library is updated;

[0054] The phased release subsystem is configured to execute, upon receiving the request for adding a phased release task sent by the release management subsystem, sending a request for updating a compilation dependency to the compilation dependency management subsystem;

[0055] The compile dependency management subsystem is configured to generate, upon receiving a compile dependency update request sent by the compile dependency management subsystem, a first compile dependency version relationship corresponding to the first basic library and a second compile dependency version relationship corresponding to the second basic library; the first compile dependency version relationship is used to characterize the relationship between versions of each basic library on which the first basic library depends, and the second compile dependency version relationship is used to characterize the relationship between versions of each basic library on which the second basic library depends;

[0056] The compilation dependency management subsystem is further configured to, upon receiving a basic library compilation request sent by a basic library usage account, determine a target compilation dependency version relationship corresponding to the basic library usage account based on an account type corresponding to the basic library usage account; when the account type is a grayscale account, the target basic library version dependency relationship is a first compilation dependency version relationship, and when the account type is a non-grayscale account, the target basic library version dependency relationship is a second compilation dependency version relationship;

[0057] The compile dependency management subsystem is further configured to execute sending the target compile dependency version relationship to the basic library usage account;

[0058] The release management subsystem is further configured to execute sending the basic library corresponding to the target compilation dependency version relationship to the basic library usage account.

[0059] Optionally, the compilation dependency management subsystem is further configured to perform the following steps:

[0060] Obtain the account name of the account using the basic library;

[0061] Determine a first hash value corresponding to the account name by using a target hash algorithm;

[0062] Performing preset processing on the first hash value to obtain a second hash value corresponding to the account name;

[0063] Comparing the second hash value with the first grayscale ratio;

[0064] Based on the magnitude relationship between the second hash value and the first grayscale ratio, the account type of the basic library usage account is determined.

[0065] Optionally, the compilation dependency management subsystem is specifically configured to execute:

[0066] When the second hash value is less than the first grayscale ratio, determining that the account type of the basic library user account is a grayscale account;

[0067] When the second hash value is greater than the first grayscale ratio, it is determined that the account type of the basic library usage account is a non-grayscale account.

[0068] Optionally, the grayscale publishing subsystem is further configured to determine a second grayscale ratio upon receiving a grayscale publishing instruction of the basic library, and increase the second grayscale ratio at every preset time interval;

[0069] The compilation dependency management subsystem is further configured to obtain a second grayscale ratio from the grayscale publishing subsystem before the compilation dependency management subsystem compares the second hash value with the first grayscale ratio, and determine the obtained second grayscale ratio as the first grayscale ratio.

[0070] Optionally, the release management subsystem is further configured to generate abnormal information indicating abnormality in compiling a basic library when an abnormality occurs in compiling a basic library using the basic library user account;

[0071] The publishing management subsystem is further configured to execute sending the abnormal information to the basic library publishing account, and sending a request to stop the grayscale publishing to the grayscale publishing subsystem;

[0072] The grayscale publishing subsystem is further configured to stop grayscale publishing of the second basic library upon receiving the grayscale publishing stop request.

[0073] According to a fourth aspect of an embodiment of the present disclosure, there is provided an electronic device, including:

[0074] processor;

[0075] a memory for storing instructions executable by the processor;

[0076] Wherein, the processor is configured to execute the instructions to implement the grayscale release method described in the first aspect.

[0077] According to a fifth aspect of an embodiment of the present disclosure, a storage medium is provided. When instructions in the storage medium are executed by a processor of an electronic device, the electronic device can execute the grayscale publishing method described in the first aspect.

[0078] According to a sixth aspect of an embodiment of the present disclosure, a computer program product is provided, which, when executed on a computer, enables the computer to implement the grayscale publishing method described in the first aspect.

[0079] The technical solution provided by the embodiment of the present disclosure is that, when a basic library is gray-released, the release management subsystem generates two versions of the basic library, namely, the old version of the basic library and the new version of the basic library, and sends a request to add a gray-release task to the gray-release subsystem, triggering the gray-release subsystem to gray-release the basic library; the gray-release subsystem sends a request to update the compilation dependency management subsystem, triggering the compilation dependency management subsystem to generate different compilation dependency version relationships for the old version of the basic library and the new version of the basic library respectively; and, for basic library user accounts of different account types, the compilation dependency management subsystem sends different compilation dependency version relationships, and the release management subsystem sends the basic library corresponding to the compilation dependency version relationship to the basic library user account, thereby realizing the sending of the new version of the basic library to the gray-release account and the sending of the old version of the basic library to the non-gray-release account.

[0080] Unlike related technologies, which directly force all basic library users to use the new version of the basic library, this method realizes the intelligent grayscale release of the basic library, ensuring that the basic library users can use the new version of the basic library as soon as possible while also ensuring the stability of the basic library release, thereby reducing online problems for the basic library users and improving the user experience of the basic library users. BRIEF DESCRIPTION OF THE DRAWINGS

[0081] Figure 1 is a schematic diagram of a grayscale publishing system according to an exemplary embodiment;

[0082] Figure 2 is a flow chart of a grayscale publishing method according to an exemplary embodiment;

[0083] Figure 3 is a flowchart of an implementation method of determining an account type of a basic library usage account according to an exemplary embodiment;

[0084] Figure 4 is a block diagram of a grayscale publishing device according to an exemplary embodiment;

[0085] Figure 5 is a block diagram of an electronic device according to an exemplary embodiment;

[0086] Figure 6 The figure is a block diagram of a grayscale publishing device according to an exemplary embodiment. DETAILED DESCRIPTION

[0087] In order to enable ordinary persons in the art to better understand the technical solutions of the present disclosure, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below in conjunction with the accompanying drawings.

[0088] It should be noted that the terms "first", "second", etc. in the specification and claims of the present disclosure and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged where appropriate, so that the embodiments of the present disclosure described herein can be implemented in an order other than those illustrated or described herein. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present disclosure. Instead, they are merely examples of devices and methods consistent with some aspects of the present disclosure as detailed in the appended claims.

[0089] The basic library is used to handle a series of framework logics such as data binding, component system, event system, communication system, etc., so that the program can run in an orderly manner. The basic library is usually maintained by the infrastructure team, and these basic libraries are provided to the business team for use. When the infrastructure team updates the basic library version, it needs to release the updated basic library for use by the business team.

[0090] There are different ways to manage the release of basic libraries. In related technologies, in order to promote the updated version of the basic library, the infrastructure team directly forces the business team to always use the updated version of the basic library. Once a problem occurs in the updated version of the basic library, it will affect a large number of users in the business team. In addition, the updated version of the basic library needs to be rolled back, and users need to be pushed to recompile the old version of the basic library to go online again, which greatly reduces the user experience.

[0091] In order to solve the above-mentioned problems existing in the related art, the embodiments of the present disclosure provide a grayscale publishing method, device, electronic device and storage medium.

[0092] In order to describe the solution clearly, the technical solution provided by the embodiment of the present disclosure is first explained as a whole.

[0093] like Figure 1 As shown, an embodiment of the present disclosure provides a grayscale publishing system, which may mainly include: a publishing management subsystem 110 , a grayscale publishing subsystem 120 and a compilation dependency management subsystem 130 .

[0094] Specifically, when the basic library publishing account publishes the basic library, it can send a basic library grayscale publishing instruction to the publishing management subsystem 110. After receiving the basic library publishing instruction, the publishing management subsystem 110 generates a first basic library and a second basic library, wherein the first basic library is an old version of the basic library and the second basic library is a new version of the basic library. For example, the version number of the first basic library can be 1.0, and the version number of the second basic library can be 2.0.

[0095] After receiving the grayscale release instruction, the release management subsystem 110 may send a request to add a grayscale release task to the grayscale release subsystem 120. After receiving the request to add the grayscale release task, the grayscale release subsystem 120 begins to increase the grayscale ratio regularly. For example, the grayscale ratio that increases every day may be set, such as 1%. The embodiment of the present disclosure does not specifically limit this. In addition, the grayscale release subsystem 120 may send a request to update the compilation dependency to the compilation dependency management subsystem 130. After receiving the request to update the compilation dependency, the compilation dependency management subsystem 130 simultaneously generates two compilation dependency version relationship graphs. Among them, the first compilation dependency version relationship graph can be used to characterize the relationship between the versions of the various basic libraries that the old version of the basic library depends on, and the second compilation dependency version relationship graph can be used to characterize the relationship between the versions of the various basic libraries that the new version of the basic library depends on.

[0096] For example, the base library to be released in grayscale is base library A. The old version of base library A is 1.0, and the new version is 2.0. Base library A depends on base library B, and the current version of base library B is 1.0. Base library B depends on base library C, and the current version of base library C is 1.0. Then, the first compilation dependency version relationship diagram can be: base library A.1.0—base library B.1.0—base library C.1.0. The second compilation dependency version relationship diagram can be: base library A.2.0—base library B.1.0—base library C.1.0.

[0097] When the basic library usage account compiles the basic library, a basic library compilation request is sent to the compilation dependency management subsystem 130. After receiving the basic library compilation request, the compilation dependency management subsystem 130 compares the last two digits of the hash value corresponding to the account name of the basic library usage account with the first grayscale ratio to determine whether the basic library usage account is a grayscale account.

[0098] Specifically, if the last two digits of the hash value corresponding to the account name of the basic library user account are less than the current grayscale ratio, it can be determined that the basic library user account is a grayscale account, and at this time, the first compilation dependency version relationship graph can be sent to the basic library user account. If the last two digits of the hash value corresponding to the account name of the basic library user account are greater than the first grayscale ratio, it can be determined that the basic library user account is a non-grayscale account, and at this time, the second compilation dependency version relationship graph can be sent to the basic library user account.

[0099] If the basic library usage account is a grayscale account, after obtaining the first compilation dependency version relationship graph, the basic library usage account can obtain the basic library corresponding to the first compilation dependency version relationship graph from the release management subsystem 110; if the basic library usage account is a non-grayscale account, after obtaining the second compilation dependency version relationship graph, the basic library usage account can obtain the basic library corresponding to the second compilation dependency version relationship graph from the release management subsystem 110.

[0100] Still taking the above example, if the account using the basic library is a grayscale account, the basic libraries obtained from the release management subsystem 110 are: basic library A with version number 1.0, basic library B with version number 1.0, and basic library C with version number 1.0. If the account using the basic library is a non-grayscale account, the basic libraries obtained from the release management subsystem 110 are: basic library A with version number 2.0, basic library B with version number 1.0, and basic library C with version number 1.0.

[0101] After obtaining the basic library corresponding to the compilation dependency version relationship diagram, the basic library using account can compile the basic library, and if an exception occurs during the compilation process, the publishing management subsystem 110 can generate exception information of the exception in compiling the basic library; and send the exception information to the basic library publishing account, so that the basic library publishing account can solve the exception problem.

[0102] Furthermore, in order to reduce online problems for accounts using the basic library, the publishing management subsystem 110 sends a request to stop grayscale publishing to the grayscale publishing subsystem 120; upon receiving the request, the grayscale publishing subsystem 120 stops grayscale publishing for the second basic library.

[0103] It can be seen that through the technical solution provided by the embodiment of the present disclosure, when the basic library is gray-released, the release management subsystem generates two versions of the basic library, namely the old version of the basic library and the new version of the basic library, and sends a request to add a gray-release task to the gray-release subsystem, triggering the gray-release subsystem to gray-release the basic library; the gray-release subsystem sends a request to update the compilation dependency management subsystem, triggering the compilation dependency management subsystem to generate different compilation dependency version relationships for the old version of the basic library and the new version of the basic library respectively; and, for basic library user accounts of different account types, the compilation dependency management subsystem sends different compilation dependency version relationships, and the release management subsystem sends the basic library corresponding to the compilation dependency version relationship to the basic library user account, thereby realizing the sending of the new version of the basic library to the gray-scale account and the sending of the old version of the basic library to the non-gray-scale account.

[0104] Unlike related technologies, which directly force all basic library users to use the new version of the basic library, this method realizes the intelligent grayscale release of the basic library, ensuring that the basic library users can use the new version of the basic library as soon as possible while also ensuring the stability of the basic library release, thereby reducing online problems for the basic library users and improving the user experience of the basic library users.

[0105] After explaining the technical solution provided by the embodiments of the present disclosure as a whole, a grayscale publishing method, device, system, electronic device and storage medium provided by the embodiments of the present disclosure will be explained in detail below.

[0106] First, a grayscale publishing method provided by an embodiment of the present disclosure is described in detail. The grayscale publishing method can be used in the grayscale publishing system in the above embodiment. The grayscale publishing system can include a publishing management subsystem, a grayscale publishing subsystem and a compilation dependency management subsystem.

[0107] like Figure 2 As shown, the grayscale publishing method provided by the embodiment of the present disclosure may include the following steps:

[0108] S210, when the publishing management subsystem receives a basic library grayscale publishing instruction from a basic library publishing account, it generates a first basic library and a second basic library, and sends a grayscale publishing task add request to the grayscale publishing subsystem.

[0109] The second basic library is an updated version of the first basic library.

[0110] Specifically, when the basic library publishing account publishes the basic library, it can send a basic library grayscale publishing instruction to the publishing management subsystem in the grayscale publishing system. After receiving the basic library publishing instruction, the publishing management subsystem generates a first basic library and a second basic library. The first basic library is an old version of the basic library, and the second basic library is a new version of the basic library. For example, the version number of the first basic library can be 1.0, and the version number of the second basic library can be 2.0.

[0111] After receiving the grayscale release instruction, the release management subsystem may send a request for adding a grayscale release task to the grayscale release subsystem to trigger the grayscale release subsystem to perform a grayscale release on the second basic library.

[0112] S220: When the grayscale publishing subsystem receives the grayscale publishing task adding request, it sends a compilation dependency update request to the compilation dependency management subsystem.

[0113] Since the compilation dependencies corresponding to different versions of basic libraries are different, after receiving the request to add a grayscale release task, the grayscale release subsystem can send a request to update the compilation dependency to the compilation dependency management subsystem.

[0114] S230, when the compile dependency management subsystem receives the request to send an update compile dependency, it generates a first compile dependency version relationship corresponding to the first basic library and a second compile dependency version relationship corresponding to the second basic library.

[0115] The first compilation dependency version relationship is used to characterize the relationship between versions of various basic libraries that the first basic library depends on, and the second compilation dependency version relationship is used to characterize the relationship between versions of various basic libraries that the second basic library depends on.

[0116] Specifically, after receiving the request to update the compile dependency, the compile dependency management subsystem generates a first compile dependency version relationship for the first basic library, and generates a second compile dependency version relationship for the second basic library. The first compile dependency version relationship is used to characterize the relationship between the versions of the basic libraries that the first basic library depends on, and the second compile dependency version relationship is used to characterize the relationship between the versions of the basic libraries that the second basic library depends on.

[0117] For example, the basic library to be released in grayscale is basic library A, the version of the first basic library A is 1.0, and the version of the second basic library A is 2.0. In addition, basic library A depends on basic library B, the current version of basic library B is 1.0, and basic library B depends on basic library C, the current version of basic library C is 1.0. Then, the first compilation dependency version relationship can be: basic library A.1.0—basic library B.1.0—basic library C.1.0. The second compilation dependency version relationship diagram can be: basic library A.2.0—basic library B.1.0—basic library C.1.0.

[0118] S240, when the compilation dependency management subsystem receives a basic library compilation request from a basic library usage account, based on the account type corresponding to the basic library usage account, determines a target compilation dependency version relationship corresponding to the basic library usage account.

[0119] Among them, when the account type is a grayscale account, the target basic library version dependency is the first compilation dependency version relationship, and when the account type is a non-grayscale account, the target basic library version dependency is the second compilation dependency version relationship.

[0120] It should be noted that the account information (including but not limited to the account's device information, account personal information, etc.) and related data involved in this disclosure are all information authorized by the account or by all parties.

[0121] Specifically, when the basic library usage account needs to compile the basic library, a basic library compilation request can be sent to the compilation dependency management subsystem. After receiving the basic library compilation request, the compilation dependency management subsystem determines the account type corresponding to the basic library usage account, that is, determines whether the basic library usage account is a grayscale account; and determines the target compilation dependency version relationship corresponding to the basic library usage account based on the account type of the basic library usage account, that is, determines whether the basic library usage account corresponds to the first compilation dependency version relationship or the second compilation dependency version relationship.

[0122] Moreover, when the account type of the account using the basic library is a grayscale account, the target basic library version dependency relationship is the first compilation dependency version relationship, that is, the compilation dependency version relationship corresponding to the new version of the basic library; when the account type of the account using the basic library is a non-grayscale account, the target basic library version dependency relationship is the second compilation dependency version relationship, that is, the compilation dependency version relationship corresponding to the old version of the basic library.

[0123] In order to describe the solution clearly, the specific implementation method of determining the account type of the basic library usage account will be described in detail in the following embodiments.

[0124] S250, the compilation dependency management subsystem sends the target compilation dependency version relationship to the basic library usage account.

[0125] S260, the release management subsystem sends the basic library corresponding to the target compilation dependency version relationship to the basic library user account.

[0126] Specifically, after determining the target compilation dependency version relationship corresponding to the basic library user account based on the account type corresponding to the basic library user account, the compilation dependency management subsystem can send the target compilation dependency version relationship to the basic library user account. After the basic library user account obtains the target compilation dependency version relationship, it can obtain the basic library corresponding to the target compilation dependency version relationship from the release management subsystem, that is, the release management subsystem sends the basic library corresponding to the target compilation dependency version relationship to the basic library user account. In addition, after the basic library user account obtains the basic library corresponding to the target compilation dependency version relationship, it can compile the obtained basic library.

[0127] For example, when the target compilation dependency version relationship is: basic library A.1.0—basic library B.1.0—basic library C.1.0, then the basic libraries obtained from the release management subsystem are: basic library A with version number 1.0, basic library B with version number 1.0, and basic library C with version number 1.0.

[0128] When the target compilation dependency version relationship is: basic library A.2.0—basic library B.1.0—basic library C.1.0, then the basic libraries obtained from the release management subsystem are: basic library A with version number 2.0, basic library B with version number 1.0, and basic library C with version number 1.0.

[0129] The technical solution provided by the embodiment of the present disclosure is that, when a basic library is gray-released, the release management subsystem generates two versions of the basic library, namely, the old version of the basic library and the new version of the basic library, and sends a request to add a gray-release task to the gray-release subsystem, triggering the gray-release subsystem to gray-release the basic library; the gray-release subsystem sends a request to update the compilation dependency management subsystem, triggering the compilation dependency management subsystem to generate different compilation dependency version relationships for the old version of the basic library and the new version of the basic library respectively; and, for basic library user accounts of different account types, the compilation dependency management subsystem sends different compilation dependency version relationships, and the release management subsystem sends the basic library corresponding to the compilation dependency version relationship to the basic library user account, thereby realizing the sending of the new version of the basic library to the gray-release account and the sending of the old version of the basic library to the non-gray-release account.

[0130] Unlike related technologies, which directly force all basic library users to use the new version of the basic library, this method realizes the intelligent grayscale release of the basic library, ensuring that the basic library users can use the new version of the basic library as soon as possible while also ensuring the stability of the basic library release, thereby reducing online problems for the basic library users and improving the user experience of the basic library users.

[0131] On the basis of the above embodiment, in order to accurately determine the account type of the account using the basic library, and then intelligently publish the basic library, such as Figure 3 As shown, the grayscale release method may also include the following steps:

[0132] S310, the compilation dependency management subsystem obtains the account name of the basic library usage account.

[0133] S320, the compilation dependency management subsystem determines a first hash value corresponding to the account name of the basic library user account through a target hash algorithm.

[0134] Specifically, each basic library user account corresponds to an account name. After obtaining the account name of the basic library user account, the account name of the basic library user account can be converted into a hash value through the target hash algorithm. In order to clearly describe the solution, the converted hash value can be called the first hash value. It should be noted that the target hash algorithm can be any hash algorithm. The embodiment of the present disclosure does not specifically limit the target hash algorithm, and those skilled in the art should understand the hash algorithm, which will not be repeated here.

[0135] S330, the compilation dependency management subsystem performs preset processing on the first hash value to obtain a second hash value corresponding to the user name.

[0136] After obtaining the first hash value, the first hash value%100, i.e., the last two digits of the first hash value, can be determined as the second hash value corresponding to the account name of the basic library user account. For example, assuming that the first hash value is 910, then the second hash value is 10.

[0137] The above is just an example to explain that the preset process is to obtain the last two digits of the first hash value. Of course, in practical applications, other processing methods are also possible, and the present disclosure does not make specific limitations on this.

[0138] S340: The compilation dependency management subsystem compares the second hash value with the first grayscale ratio.

[0139] Specifically, when the basic library is grayscale released, the grayscale release subsystem sets a first grayscale ratio, and during the grayscale release process, the first grayscale ratio will gradually increase until it increases to 100%, completing the grayscale release of the basic library. After obtaining the second hash value, the second hash value can be compared with the first grayscale ratio to determine the size relationship between the second hash value and the first grayscale ratio, and then determine the account type of the basic library user account.

[0140] S350: The compilation dependency management subsystem determines the account type of the basic library usage account based on the size relationship between the second hash value and the first grayscale ratio.

[0141] After the compilation dependency management subsystem obtains the size relationship between the second hash value and the first grayscale ratio, the account type of the basic library user account may be determined based on the size relationship between the second hash value and the first grayscale ratio.

[0142] It can be seen that through the size relationship between the second hash value and the first grayscale ratio, the compilation dependency management subsystem can accurately divide the basic library usage account into two types, namely grayscale accounts and non-grayscale accounts, so as to determine the account type of the basic library usage account, so that in the subsequent steps, the release management subsystem can send the corresponding basic library to the basic library account according to the account type of the basic library usage account, and then intelligently publish the basic library.

[0143] As an implementation of the embodiment of the present disclosure, the compilation dependency management subsystem determines the account type of the basic library user account based on the size relationship between the second hash value and the first grayscale ratio, which may include the following two steps:

[0144] In the first step, when the second hash value is less than the first grayscale ratio, the compilation dependency management subsystem determines that the account type of the basic library usage account is a grayscale account.

[0145] In the second step, when the second hash value is greater than the first grayscale ratio, the compilation dependency management subsystem determines that the account type of the basic library usage account is a non-grayscale account.

[0146] For example, if the second hash value is 10 and the first grayscale ratio is 20%, since 10 is less than 20, it can be determined that the account type of the basic library account is a grayscale account. For another example, if the second hash value is 10 and the first grayscale ratio is 5%, since 10 is greater than 5, it can be determined that the account type of the basic library account is a non-grayscale account.

[0147] Since the first grayscale ratio is gradually increasing, by determining the account whose second hash value is less than the first grayscale ratio as a grayscale account, the grayscale account ratio can be gradually increased as the grayscale ratio gradually increases, that is, the grayscale accounts are also increasing, which is conducive to the promotion of the new version of the basic library. In addition, the basic library has undergone a lot of verification during the release process to ensure the stability of the basic library release, reduce user problems, and thus improve user experience.

[0148] Based on the above embodiment, the grayscale release method may further include the following steps, namely step a and step b:

[0149] Step a: when the grayscale publishing subsystem receives the basic library grayscale publishing instruction, it determines a second grayscale ratio and increases the second grayscale ratio at every preset time interval.

[0150] Step b: before the compilation dependency management subsystem compares the second hash value with the first grayscale ratio, the compilation dependency management subsystem obtains the second grayscale ratio from the grayscale publishing subsystem, and determines the obtained second grayscale ratio as the first grayscale ratio.

[0151] Specifically, when the grayscale publishing subsystem receives the basic library grayscale publishing instruction, an initial grayscale ratio can be determined, which can be called the second grayscale ratio. In addition, the second grayscale ratio can be increased regularly. For example, the second grayscale ratio can be set to increase every day, such as 1% of the second grayscale ratio increased every day.

[0152] Before the compilation dependency management subsystem compares the second hash value with the first grayscale ratio, the compilation dependency management subsystem can obtain the second grayscale ratio from the grayscale publishing subsystem and determine the obtained second grayscale ratio as the first grayscale ratio, that is, the current grayscale ratio of the grayscale publishing subsystem can be accurately obtained.

[0153] It can be seen that by gradually increasing the grayscale ratio, the number of grayscale accounts gradually increases, which is conducive to the gradual promotion of the new version of the basic library and realizes the intelligent grayscale release of the basic library. In addition, the basic library release process has undergone a lot of verification to ensure the stability of the basic library release, reduce user problems, and thus improve user experience.

[0154] On the basis of the above embodiment, in order to further improve the experience of using the basic library account, in one implementation, the grayscale release method may further include the following steps, namely step c to step e:

[0155] Step c: when an exception occurs in the compilation of the basic library by the basic library user account, the release management subsystem generates exception information indicating that an exception occurs in the compilation of the basic library.

[0156] Step d: The publishing management subsystem sends an exception message to the basic library publishing account and sends a request to stop the grayscale publishing to the grayscale publishing subsystem.

[0157] Step e: upon receiving the request to stop the grayscale publishing, the grayscale publishing subsystem stops the grayscale publishing of the second basic library.

[0158] Specifically, when an exception occurs when the basic library user account compiles the basic library, the publishing management subsystem can generate exception information of the exception in compiling the basic library, and the exception information can include specific exception problems that occur when compiling the basic library, etc., which are not specifically limited in the embodiments of the present disclosure. After the publishing management subsystem generates the exception information of the exception in compiling the basic library, the exception information can be reported to the basic library publishing account, so that the basic library publishing account can solve the exception problem that occurs when the basic library user account compiles the basic library.

[0159] In addition, in order to avoid usage problems for the basic library usage account due to abnormalities in the new version of the basic library, a stop grayscale release request can be sent to the grayscale release subsystem. When the grayscale release subsystem receives the stop grayscale release request, it temporarily stops the grayscale release of the basic library and can continue the grayscale release of the basic library the next time it receives the basic library grayscale release instruction sent by the basic library release account.

[0160] It can be seen that the technical solution provided in this embodiment is conducive to solving the abnormal problem that occurs when the basic library uses the account to compile the basic library as soon as possible by reporting the basic library publishing account when the basic library compiles the basic library abnormally; and by sending a stop grayscale publishing request to the grayscale publishing subsystem, triggering the grayscale publishing subsystem to stop grayscale publishing of the basic library, it can further reduce the usage problems caused to users and improve the user experience.

[0161] The embodiment of the present disclosure also provides a grayscale publishing device, which is applied to a grayscale publishing system. The grayscale publishing system includes a publishing management subsystem, a grayscale publishing subsystem and a compile dependency management subsystem; the publishing management subsystem includes a basic library generation module 410 and a basic library sending module 460, the grayscale publishing subsystem includes a compile dependency update request sending module 420, and the compile dependency management subsystem includes a compile dependency version relationship generation module 430, a compile dependency version relationship determination module 440 and a target compile dependency version relationship sending module 450, such as Figure 4 As shown, including:

[0162] The basic library generation module 410 is configured to generate a first basic library and a second basic library when the release management subsystem receives a basic library grayscale release instruction from a basic library release account, and send a grayscale release task request to the grayscale release subsystem; the second basic library is a basic library after the first basic library is updated;

[0163] The compile dependency update request sending module 420 is configured to execute, when the phased release subsystem receives a request to add a phased release task, sending a compile dependency update request to the compile dependency management subsystem;

[0164] The compile dependency version relationship generating module 430 is configured to generate a first compile dependency version relationship corresponding to the first basic library and a second compile dependency version relationship corresponding to the second basic library when the compile dependency management subsystem receives a request to send an update compile dependency; the first compile dependency version relationship is used to characterize the relationship between the versions of each basic library that the first basic library depends on, and the second compile dependency version relationship is used to characterize the relationship between the versions of each basic library that the second basic library depends on;

[0165] The compilation dependency version relationship determination module 440 is configured to determine the target compilation dependency version relationship corresponding to the basic library user account based on the account type corresponding to the basic library user account when the compilation dependency management subsystem receives a basic library compilation request from the basic library user account; when the account type is a grayscale account, the target basic library version dependency relationship is a first compilation dependency version relationship, and when the account type is a non-grayscale account, the target basic library version dependency relationship is a second compilation dependency version relationship;

[0166] A target compilation dependency version relationship sending module 450 is configured to execute sending the target compilation dependency version relationship to the basic library user account;

[0167] The basic library sending module 460 is configured to execute sending the basic library corresponding to the target compilation dependency version relationship to the basic library user account.

[0168] The technical solution provided by the embodiment of the present disclosure is that, when a basic library is gray-released, the release management subsystem generates two versions of the basic library, namely, the old version of the basic library and the new version of the basic library, and sends a request to add a gray-release task to the gray-release subsystem, triggering the gray-release subsystem to gray-release the basic library; the gray-release subsystem sends a request to update the compilation dependency management subsystem, triggering the compilation dependency management subsystem to generate different compilation dependency version relationships for the old version of the basic library and the new version of the basic library respectively; and, for basic library user accounts of different account types, the compilation dependency management subsystem sends different compilation dependency version relationships, and the release management subsystem sends the basic library corresponding to the compilation dependency version relationship to the basic library user account, thereby realizing the sending of the new version of the basic library to the gray-release account and the sending of the old version of the basic library to the non-gray-release account.

[0169] Unlike related technologies, which directly force all basic library users to use the new version of the basic library, this method realizes the intelligent grayscale release of the basic library, ensuring that the basic library users can use the new version of the basic library as soon as possible while also ensuring the stability of the basic library release, thereby reducing online problems for the basic library users and improving the user experience of the basic library users.

[0170] Optionally, the compilation dependency management subsystem further includes an account name acquisition module, a first hash value determination module, a second hash value determination module, a data comparison module and an account type determination module;

[0171] The account name acquisition module is configured to execute acquisition of the account name of the account used by the basic library;

[0172] The first hash value determination module is configured to determine a first hash value corresponding to the account name by executing a target hash algorithm;

[0173] The second hash value determination module is configured to perform a preset process on the first hash value to obtain a second hash value corresponding to the account name;

[0174] The data comparison module is configured to compare the second hash value with the first grayscale ratio;

[0175] The account type determination module is configured to determine the account type of the basic library usage account based on the size relationship between the second hash value and the first grayscale ratio.

[0176] Optionally, the account type determination module is specifically configured to execute:

[0177] When the second hash value is less than the first grayscale ratio, determining that the account type of the basic library user account is a grayscale account;

[0178] When the second hash value is greater than the first grayscale ratio, it is determined that the account type of the basic library usage account is a non-grayscale account.

[0179] Optionally, the grayscale publishing subsystem further includes a second grayscale ratio determination module, and the compilation dependency management subsystem further includes a first grayscale ratio determination module;

[0180] The second grayscale ratio determination module is configured to determine the second grayscale ratio when the grayscale publishing subsystem receives the grayscale publishing instruction of the basic library, and increase the second grayscale ratio at every preset time interval;

[0181] The first grayscale ratio determination module is configured to obtain the second grayscale ratio from the grayscale publishing subsystem before the data comparison module of the compilation dependency management subsystem compares the second hash value with the first grayscale ratio, and determine the obtained second grayscale ratio as the first grayscale ratio.

[0182] Optionally, the release management subsystem further includes an abnormal information generating module, an abnormal information sending module and a grayscale release stop request sending module, and the grayscale release subsystem further includes a grayscale release stop module:

[0183] The exception information generating module is configured to generate exception information indicating that an exception occurs when the basic library is compiled by the basic library using account;

[0184] The abnormal information sending module is configured to send the abnormal information to the basic library publishing account;

[0185] The grayscale publishing stop request sending module is configured to execute sending a grayscale publishing stop request to the grayscale publishing subsystem;

[0186] The grayscale publishing stopping module is configured to stop grayscale publishing of the second basic library upon receiving the grayscale publishing stopping request.

[0187] According to a third aspect of an embodiment of the present disclosure, a grayscale publishing system is provided, including: a publishing management subsystem, a grayscale publishing subsystem and a compilation dependency management subsystem;

[0188] The release management subsystem is configured to generate a first basic library and a second basic library upon receiving a basic library grayscale release instruction from a basic library release account, and send a grayscale release task add request to the grayscale release subsystem; the second basic library is a basic library after the first basic library is updated;

[0189] The phased release subsystem is configured to execute, upon receiving the request for adding a phased release task sent by the release management subsystem, sending a request for updating a compilation dependency to the compilation dependency management subsystem;

[0190] The compile dependency management subsystem is configured to generate, upon receiving a compile dependency update request sent by the compile dependency management subsystem, a first compile dependency version relationship corresponding to the first basic library and a second compile dependency version relationship corresponding to the second basic library; the first compile dependency version relationship is used to characterize the relationship between versions of each basic library on which the first basic library depends, and the second compile dependency version relationship is used to characterize the relationship between versions of each basic library on which the second basic library depends;

[0191] The compilation dependency management subsystem is further configured to, upon receiving a basic library compilation request sent by a basic library usage account, determine a target compilation dependency version relationship corresponding to the basic library usage account based on an account type corresponding to the basic library usage account; when the account type is a grayscale account, the target basic library version dependency relationship is a first compilation dependency version relationship, and when the account type is a non-grayscale account, the target basic library version dependency relationship is a second compilation dependency version relationship;

[0192] The compile dependency management subsystem is further configured to execute sending the target compile dependency version relationship to the basic library usage account;

[0193] The release management subsystem is further configured to execute sending the basic library corresponding to the target compilation dependency version relationship to the basic library usage account.

[0194] Optionally, the compilation dependency management subsystem is further configured to perform the following steps:

[0195] Obtain the account name of the account using the basic library;

[0196] Determine a first hash value corresponding to the account name by using a target hash algorithm;

[0197] Performing preset processing on the first hash value to obtain a second hash value corresponding to the account name;

[0198] Comparing the second hash value with the first grayscale ratio;

[0199] Based on the magnitude relationship between the second hash value and the first grayscale ratio, the account type of the basic library usage account is determined.

[0200] Optionally, the compilation dependency management subsystem is specifically configured to execute:

[0201] When the second hash value is less than the first grayscale ratio, determining that the account type of the basic library user account is a grayscale account;

[0202] When the second hash value is greater than the first grayscale ratio, it is determined that the account type of the basic library usage account is a non-grayscale account.

[0203] Optionally, the grayscale publishing subsystem is further configured to determine a second grayscale ratio upon receiving a grayscale publishing instruction of the basic library, and increase the second grayscale ratio at every preset time interval;

[0204] The compilation dependency management subsystem is further configured to obtain a second grayscale ratio from the grayscale publishing subsystem before the compilation dependency management subsystem compares the second hash value with the first grayscale ratio, and determine the obtained second grayscale ratio as the first grayscale ratio.

[0205] Optionally, the release management subsystem is further configured to generate abnormal information indicating abnormality in compiling a basic library when an abnormality occurs in compiling a basic library using the basic library user account;

[0206] The publishing management subsystem is further configured to execute sending the abnormal information to the basic library publishing account, and sending a request to stop the grayscale publishing to the grayscale publishing subsystem;

[0207] The grayscale publishing subsystem is further configured to stop grayscale publishing of the second basic library upon receiving the grayscale publishing stop request.

[0208] The present disclosure also provides an electronic device, such as Figure 5As shown, including:

[0209] Processor 510;

[0210] A memory 520 for storing instructions executable by the processor;

[0211] Wherein, the processor is configured to execute the instructions to implement the grayscale release method described in the first aspect.

[0212] The technical solution provided by the embodiment of the present disclosure is that, when a basic library is gray-released, the release management subsystem generates two versions of the basic library, namely, the old version of the basic library and the new version of the basic library, and sends a request to add a gray-release task to the gray-release subsystem, triggering the gray-release subsystem to gray-release the basic library; the gray-release subsystem sends a request to update the compilation dependency management subsystem, triggering the compilation dependency management subsystem to generate different compilation dependency version relationships for the old version of the basic library and the new version of the basic library respectively; and, for basic library user accounts of different account types, the compilation dependency management subsystem sends different compilation dependency version relationships, and the release management subsystem sends the basic library corresponding to the compilation dependency version relationship to the basic library user account, thereby realizing the sending of the new version of the basic library to the gray-release account and the sending of the old version of the basic library to the non-gray-release account.

[0213] Unlike related technologies, which directly force all basic library users to use the new version of the basic library, this method realizes the intelligent grayscale release of the basic library, ensuring that the basic library users can use the new version of the basic library as soon as possible while also ensuring the stability of the basic library release, thereby reducing online problems for the basic library users and improving the user experience of the basic library users.

[0214] Figure 6 6 is a block diagram of a grayscale publishing device 600 according to an exemplary embodiment. For example, the device 600 can be provided as a server. Figure 6 The apparatus 600 includes a processing component 622, which further includes one or more processors, and a memory resource represented by a memory 632 for storing instructions executable by the processing component 622, such as an application. The application stored in the memory 632 may include one or more modules, each corresponding to a set of instructions. In addition, the processing component 622 is configured to execute instructions to perform the grayscale release method described in the first aspect.

[0215] The device 600 may also include a power supply component 626 configured to perform power management of the device 600, a wired or wireless network interface 650 configured to connect the device 600 to a network, and an input / output (I / O) interface 658. The device 600 may operate based on an operating system stored in the memory 632, such as Windows Server™, Mac OS X™, Unix™, Linux™, FreeBSD™, or the like.

[0216] The technical solution provided by the embodiment of the present disclosure is that, when a basic library is gray-released, the release management subsystem generates two versions of the basic library, namely, the old version of the basic library and the new version of the basic library, and sends a request to add a gray-release task to the gray-release subsystem, triggering the gray-release subsystem to gray-release the basic library; the gray-release subsystem sends a request to update the compilation dependency management subsystem, triggering the compilation dependency management subsystem to generate different compilation dependency version relationships for the old version of the basic library and the new version of the basic library respectively; and, for basic library user accounts of different account types, the compilation dependency management subsystem sends different compilation dependency version relationships, and the release management subsystem sends the basic library corresponding to the compilation dependency version relationship to the basic library user account, thereby realizing the sending of the new version of the basic library to the gray-release account and the sending of the old version of the basic library to the non-gray-release account.

[0217] Unlike related technologies, which directly force all basic library users to use the new version of the basic library, this method realizes the intelligent grayscale release of the basic library, ensuring that the basic library users can use the new version of the basic library as soon as possible while also ensuring the stability of the basic library release, thereby reducing online problems for the basic library users and improving the user experience of the basic library users.

[0218] An embodiment of the present disclosure further provides a storage medium. When instructions in the storage medium are executed by a processor of an electronic device, the electronic device is enabled to execute the grayscale publishing method described in the first aspect.

[0219] The technical solution provided by the embodiment of the present disclosure is that, when a basic library is gray-released, the release management subsystem generates two versions of the basic library, namely, the old version of the basic library and the new version of the basic library, and sends a request to add a gray-release task to the gray-release subsystem, triggering the gray-release subsystem to gray-release the basic library; the gray-release subsystem sends a request to update the compilation dependency management subsystem, triggering the compilation dependency management subsystem to generate different compilation dependency version relationships for the old version of the basic library and the new version of the basic library respectively; and, for basic library user accounts of different account types, the compilation dependency management subsystem sends different compilation dependency version relationships, and the release management subsystem sends the basic library corresponding to the compilation dependency version relationship to the basic library user account, thereby realizing the sending of the new version of the basic library to the gray-release account and the sending of the old version of the basic library to the non-gray-release account.

[0220] Unlike related technologies, which directly force all basic library users to use the new version of the basic library, this method realizes the intelligent grayscale release of the basic library, ensuring that the basic library users can use the new version of the basic library as soon as possible while also ensuring the stability of the basic library release, thereby reducing online problems for the basic library users and improving the user experience of the basic library users.

[0221] The embodiment of the present disclosure also provides a computer program product, which, when executed on a computer, enables the computer to implement the grayscale publishing method described in the first aspect.

[0222] The technical solution provided by the embodiment of the present disclosure is that, when a basic library is gray-released, the release management subsystem generates two versions of the basic library, namely, the old version of the basic library and the new version of the basic library, and sends a request to add a gray-release task to the gray-release subsystem, triggering the gray-release subsystem to gray-release the basic library; the gray-release subsystem sends a request to update the compilation dependency management subsystem, triggering the compilation dependency management subsystem to generate different compilation dependency version relationships for the old version of the basic library and the new version of the basic library respectively; and, for basic library user accounts of different account types, the compilation dependency management subsystem sends different compilation dependency version relationships, and the release management subsystem sends the basic library corresponding to the compilation dependency version relationship to the basic library user account, thereby realizing the sending of the new version of the basic library to the gray-release account and the sending of the old version of the basic library to the non-gray-release account.

[0223] Unlike related technologies, which directly force all basic library users to use the new version of the basic library, this method realizes the intelligent grayscale release of the basic library, ensuring that the basic library users can use the new version of the basic library as soon as possible while also ensuring the stability of the basic library release, thereby reducing online problems for the basic library users and improving the user experience of the basic library users.

[0224] Those skilled in the art will readily appreciate other embodiments of the present disclosure after considering the specification and practicing the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of the present disclosure that follow the general principles of the present disclosure and include common knowledge or customary techniques in the art that are not disclosed in the present disclosure. The specification and examples are intended to be exemplary only, and the true scope and spirit of the present disclosure are indicated by the following claims.

[0225] It should be understood that the present disclosure is not limited to the exact structures that have been described above and shown in the drawings, and that various modifications and changes may be made without departing from the scope thereof. The scope of the present disclosure is limited only by the appended claims.

Claims

1. A grayscale release method, characterized in that: Applied to a grayscale release system, the grayscale release system includes a release management subsystem, a grayscale release subsystem and a compilation dependency management subsystem, and the method includes: When the publishing management subsystem receives the basic library grayscale publishing instruction from the basic library publishing account, it generates a first basic library and a second basic library, and sends a grayscale publishing task addition request to the grayscale publishing subsystem; the second basic library is the basic library after the first basic library is updated; When the grayscale publishing subsystem receives the request to add a grayscale publishing task, it sends a request to update the compilation dependency to the compilation dependency management subsystem; When the compilation dependency management subsystem receives a request to send an update compilation dependency, a first compilation dependency version relationship corresponding to the first basic library and a second compilation dependency version relationship corresponding to the second basic library are generated; the first compilation dependency version relationship is used to characterize the relationship between versions of each basic library on which the first basic library depends, and the second compilation dependency version relationship is used to characterize the relationship between versions of each basic library on which the second basic library depends; When the compilation dependency management subsystem receives a basic library compilation request from a basic library usage account, based on the account type corresponding to the basic library usage account, the target compilation dependency version relationship corresponding to the basic library usage account is determined; when the account type is a grayscale account, the target compilation dependency version relationship is a first compilation dependency version relationship, and when the account type is a non-grayscale account, the target compilation dependency version relationship is a second compilation dependency version relationship; The compile dependency management subsystem sends the target compile dependency version relationship to the basic library usage account; The release management subsystem sends the basic library corresponding to the target compilation dependency version relationship to the basic library usage account.

2. The method according to claim 1, characterized in that The method further comprises: The compilation dependency management subsystem obtains the account name of the basic library user account; The compilation dependency management subsystem determines a first hash value corresponding to the account name by using a target hash algorithm; The compilation dependency management subsystem performs preset processing on the first hash value to obtain a second hash value corresponding to the account name; The compilation dependency management subsystem compares the second hash value with the first grayscale ratio; The compilation dependency management subsystem determines the account type of the basic library usage account based on the size relationship between the second hash value and the first grayscale ratio.

3. The method according to claim 2, characterized in that The compilation dependency management subsystem determines the account type of the basic library user account based on the size relationship between the second hash value and the first grayscale ratio, including: When the second hash value is less than the first grayscale ratio, the compilation dependency management subsystem determines that the account type of the basic library use account is a grayscale account; When the second hash value is greater than the first grayscale ratio, the compilation dependency management subsystem determines that the account type of the basic library usage account is a non-grayscale account.

4. The method according to claim 2 or 3, characterized in that: The method further comprises: When the grayscale publishing subsystem receives the grayscale publishing instruction of the basic library, determining a second grayscale ratio, and increasing the second grayscale ratio at every preset time interval; Before the compile dependency management subsystem compares the second hash value with the first grayscale ratio, the compile dependency management subsystem obtains the second grayscale ratio from the grayscale publishing subsystem, and determines the obtained second grayscale ratio as the first grayscale ratio.

5. The method according to any one of claims 1 to 3, characterized in that: The method further comprises: When an exception occurs in the compilation of the basic library by the basic library user account, the release management subsystem generates exception information indicating that an exception occurs in the compilation of the basic library; The publishing management subsystem sends the abnormal information to the basic library publishing account, and sends a request to stop the grayscale publishing to the grayscale publishing subsystem; When receiving the request to stop the grayscale publishing, the grayscale publishing subsystem stops the grayscale publishing of the second basic library.

6. A grayscale publishing device, characterized in that: Applied to the grayscale release system, the grayscale release system includes a release management subsystem, a grayscale release subsystem and a compile dependency management subsystem; the release management subsystem includes a basic library generation module and a basic library sending module, the grayscale release subsystem includes a compile dependency update request sending module, and the compile dependency management subsystem includes a compile dependency version relationship generation module, a compile dependency version relationship determination module and a target compile dependency version relationship sending module: The basic library generation module is configured to generate a first basic library and a second basic library when the publishing management subsystem receives a basic library grayscale publishing instruction from a basic library publishing account, and send a grayscale publishing task addition request to the grayscale publishing subsystem; The second basic library is an updated version of the first basic library; The compile dependency update request sending module is configured to execute, when the phased release subsystem receives a request to add a phased release task, sending a compile dependency update request to the compile dependency management subsystem; The compile dependency version relationship generation module is configured to generate a first compile dependency version relationship corresponding to the first basic library and a second compile dependency version relationship corresponding to the second basic library when the compile dependency management subsystem receives a request to update the compile dependency; the first compile dependency version relationship is used to characterize the relationship between the versions of each basic library on which the first basic library depends, and the second compile dependency version relationship is used to characterize the relationship between the versions of each basic library on which the second basic library depends; The compile dependency version relationship determination module is configured to determine a target compile dependency version relationship corresponding to the basic library usage account based on the account type corresponding to the basic library usage account when the compile dependency management subsystem receives a basic library compilation request from the basic library usage account; when the account type is a grayscale account, the target compile dependency version relationship is a first compile dependency version relationship, and when the account type is a non-grayscale account, the target compile dependency version relationship is a second compile dependency version relationship; The target compilation dependency version relationship sending module is configured to execute sending the target compilation dependency version relationship to the basic library usage account; The basic library sending module is configured to execute sending of the basic library corresponding to the target compilation dependency version relationship to the basic library user account.

7. The device according to claim 6, characterized in that The compilation dependency management subsystem also includes an account name acquisition module, a first hash value determination module, a second hash value determination module, a data comparison module, and an account type determination module; The account name acquisition module is configured to execute acquisition of the account name of the account used by the basic library; The first hash value determination module is configured to determine the first hash value corresponding to the account name by executing a target hash algorithm; The second hash value determination module is configured to perform a preset process on the first hash value to obtain a second hash value corresponding to the account name; The data comparison module is configured to compare the second hash value with the first grayscale ratio; The account type determination module is configured to determine the account type of the basic library usage account based on the size relationship between the second hash value and the first grayscale ratio.

8. The device according to claim 7, characterized in that The account type determination module is specifically configured to execute: When the second hash value is less than the first grayscale ratio, determining that the account type of the basic library user account is a grayscale account; When the second hash value is greater than the first grayscale ratio, it is determined that the account type of the basic library usage account is a non-grayscale account.

9. The device according to any one of claims 7 to 8, characterized in that The grayscale publishing subsystem further includes a second grayscale ratio determination module, and the compilation dependency management subsystem further includes a first grayscale ratio determination module; The second grayscale ratio determination module is configured to determine the second grayscale ratio when the grayscale publishing subsystem receives the grayscale publishing instruction of the basic library, and increase the second grayscale ratio at every preset time interval; The first grayscale ratio determination module is configured to obtain the second grayscale ratio from the grayscale publishing subsystem before the data comparison module of the compilation dependency management subsystem compares the second hash value with the first grayscale ratio, and determine the obtained second grayscale ratio as the first grayscale ratio.

10. The device according to any one of claims 6 to 8, characterized in that The release management subsystem further includes an abnormal information generation module, an abnormal information sending module and a grayscale release stop request sending module, and the grayscale release subsystem further includes a grayscale release stop module; The exception information generating module is configured to generate exception information indicating that an exception occurs when the basic library is compiled by the basic library using account; The abnormal information sending module is configured to send the abnormal information to the basic library publishing account; The grayscale publishing stop request sending module is configured to execute sending a grayscale publishing stop request to the grayscale publishing subsystem; The grayscale publishing stopping module is configured to stop grayscale publishing of the second basic library upon receiving the grayscale publishing stopping request.

11. A grayscale release system, characterized in that: include: Release management subsystem, grayscale release subsystem and compilation dependency management subsystem; The publishing management subsystem is configured to generate a first basic library and a second basic library upon receiving a basic library grayscale publishing instruction from a basic library publishing account, and send a grayscale publishing task adding request to the grayscale publishing subsystem; The second basic library is an updated version of the first basic library; The phased release subsystem is configured to execute, upon receiving the request for adding a phased release task sent by the release management subsystem, sending a request for updating a compilation dependency to the compilation dependency management subsystem; The compile dependency management subsystem is configured to generate, upon receiving a compile dependency update request sent by the compile dependency management subsystem, a first compile dependency version relationship corresponding to the first basic library and a second compile dependency version relationship corresponding to the second basic library; the first compile dependency version relationship is used to characterize the relationship between versions of each basic library on which the first basic library depends, and the second compile dependency version relationship is used to characterize the relationship between versions of each basic library on which the second basic library depends; The compile dependency management subsystem is further configured to, upon receiving a basic library compile request sent by a basic library usage account, determine a target compile dependency version relationship corresponding to the basic library usage account based on an account type corresponding to the basic library usage account; when the account type is a grayscale account, the target compile dependency version relationship is a first compile dependency version relationship, and when the account type is a non-grayscale account, the target compile dependency version relationship is a second compile dependency version relationship; The compile dependency management subsystem is further configured to execute sending the target compile dependency version relationship to the basic library usage account; The release management subsystem is further configured to execute sending the basic library corresponding to the target compilation dependency version relationship to the basic library usage account.

12. An electronic device, characterized in that: include: processor; a memory for storing instructions executable by the processor; The processor is configured to execute the instructions to implement the grayscale release method as described in any one of claims 1 to 5.

13. A computer-readable storage medium, when instructions in the storage medium are executed by a processor of an electronic device, enables the electronic device to execute the grayscale release method as described in any one of claims 1 to 5.

14. A computer program product, characterized in that When it runs on a computer, it enables the computer to implement the grayscale release method as described in any one of claims 1 to 5.

Citation Information

Patent Citations

  • A method and a terminal for publishing services in batches

    CN109787858A

  • Version publishing method and device based on multi-environment offline task

    CN110941446A