Software development method and device, electronic equipment and storage medium

By analyzing the version information and dependencies of the target software, using cloud object storage and software package management services to build a development environment on the target terminal, the problem of the inability to achieve collaborative software development in the existing technology is solved, and the development efficiency and software quality are improved.

CN119829058APending Publication Date: 2025-04-15TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311321616.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-10-12
Publication Date
2025-04-15

AI Technical Summary

Technical Problem

The existing technology cannot realize the collaborative development of software, resulting in low development efficiency and unstable software quality, especially in two networks where networks are not interoperable.

Method used

By analyzing the version information of the target software, determining the basic package dependency, and calling the cloud object storage service to obtain the target software package and dependency software package, using the software package management service to build a development environment on the target terminal, and realizing collaborative development in different networks.

Benefits of technology

It realizes collaborative development by developers in different networks, saves developers time to build a development environment, and improves the development efficiency and quality stability of software.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119829058A_ABST
    Figure CN119829058A_ABST
Patent Text Reader

Abstract

The invention discloses a software development method and device, electronic equipment and a storage medium, and the method comprises the steps: responding to an operation request of a target terminal for target software in a software set corresponding to a target project, analyzing the version information of the target software, and determining a basic package dependency relationship of the target software based on the version information; analyzing dependent software package information based on the basic package dependency relationship, wherein the dependent software package information indicates version information of a software package which needs to be depended by running the target software; obtaining a target software package and at least one dependent software package from a cloud object storage service based on the version information of the target software and the dependent software package information, wherein the cloud object storage service stores a plurality of software packages based on an object; and calling the software package management service, quoting the target software package and the at least one dependent software package, and constructing a development environment of the target software at the target terminal. According to the method, collaborative development of developers in different networks is realized, and the development efficiency and the software quality are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

[0002] Currently, software package management services can be provided through software package management tools. A software package management tool in the related art can create an independent environment configured for a given set of software packages. Unlike other software package managers, the software packages managed by the software package management tool are not installed into the independent environment, but are installed into the disk, and the independent environment references these existing software packages.

[0003] It can be seen that the related technology only realizes the environment management of traditional software packages, cannot achieve purely centralized deployment and lacks a collaborative development environment. For developers located in two networks that are not interconnected, collaborative software development cannot be achieved, which leads to low software development efficiency and unstable software quality in the related technology. Summary of the invention

[0004] In order to solve the problems of the prior art, the embodiments of the present application provide a software development method, device, electronic device and storage medium. The technical solution is as follows:

[0005] In one aspect, a software development method is provided, the method comprising:

[0006] In response to a target terminal's request to run a target software in a software set corresponding to a target project, parsing version information of the target software;

[0007] Determine the basic package dependency of the target software based on the version information of the target software;

[0008] Based on the basic package dependency relationship, the dependent software package information is parsed; the dependent software package information indicates the version information of the software package required to run the target software;

[0009] Calling a cloud object storage service, obtaining a target software package from the cloud object storage service based on the version information of the target software, and obtaining at least one dependent software package from the cloud object storage service based on the dependent software package information; the cloud object storage service stores multiple software packages based on objects;

[0010] The software package management service is called, the target software package and the at least one dependent software package are referenced, and a development environment of the target software is constructed on the target terminal.

[0011] In another aspect, a software development device is provided, the device comprising:

[0012] A first parsing module, configured to parse version information of the target software in response to a target terminal's request to run the target software in the software set corresponding to the target project;

[0013] A basic dependency determination module, used to determine the basic package dependency of the target software based on the version information of the target software;

[0014] A second parsing module is used to parse out dependent software package information based on the basic package dependency relationship; the dependent software package information indicates version information of the software package that the target software needs to depend on to run;

[0015] a software package acquisition module, configured to call a cloud object storage service, acquire a target software package from the cloud object storage service based on the version information of the target software, and acquire at least one dependent software package from the cloud object storage service based on the dependent software package information; the cloud object storage service stores multiple software packages based on objects;

[0016] The development environment construction module is used to call the software package management service, reference the target software package and the at least one dependent software package, and construct the development environment of the target software on the target terminal.

[0017] In an exemplary embodiment, the apparatus further comprises:

[0018] A merge request acquisition module, used to acquire a code merge request for the target software; the code merge request indicates an update code and a trunk code branch of the target software, and the update code is developed based on a development environment of the target software;

[0019] A code merging module is used to call a continuous integration tool to obtain the update code of the target software and the trunk code branch, merge the update code into the trunk code branch, and obtain the code to be compiled;

[0020] A compiling module, used to compile the code to be compiled, generate a version update software package of the target software and description information of the version update software package, wherein the description information includes version information and basic package dependency;

[0021] The object storage module is used to upload the version update software package of the target software to the cloud object storage service so that the cloud object storage service stores the version update software package based on objects, and stores the description information of the version update software package in a database; the database is used to store the description information of multiple software packages in the cloud storage object service.

[0022] In an exemplary embodiment, the code merging module includes:

[0023] A first code checking module, used for performing code checking on the update code;

[0024] The first code testing module is used to build a first test environment based on the continuous integration tool when the code check of the updated code passes, test the updated code in the first test environment, and merge the updated code into the trunk code branch to obtain the code to be compiled if the test is successful.

[0025] In an exemplary embodiment, the apparatus further comprises:

[0026] A second code checking module, used for performing code checking on the code to be compiled;

[0027] The second code testing module is used to build a second test environment based on the continuous integration tool when the code check of the code to be compiled passes, and test the code to be compiled in the second test environment. If the test is successful, the compilation module executes it.

[0028] In an exemplary embodiment, the basic dependency determination module includes:

[0029] A description information search module, used to search the database for target description information that matches the version information of the target software;

[0030] The basic package dependency acquisition module is used to acquire the basic package dependency in the target description information to obtain the basic package dependency of the target software.

[0031] In an exemplary embodiment, the first parsing module includes:

[0032] A software warehouse creation module, configured to create a software warehouse of the target software based on a software warehouse template in response to a software warehouse creation request for the target project;

[0033] A software warehouse pulling module, configured to generate a local code warehouse corresponding to the software warehouse at the target terminal in response to a pull request of the target software from the target terminal;

[0034] A request initiating module is used to respond to an operation request initiated by the target terminal based on the local code repository.

[0035] In an exemplary embodiment, the software warehouse creation module includes:

[0036] A template and configuration acquisition module, used to obtain a software repository template and a continuous integration configuration file in response to a software repository creation request; the continuous integration configuration file is used to indicate the arrangement relationship and execution logic between multiple execution steps of the continuous integration tool;

[0037] The first generating module is used to generate the software repository of the target software and the continuous integration tool based on the software repository template and the continuous integration configuration file.

[0038] In an exemplary embodiment, when the template and configuration acquisition module obtains a software warehouse template in response to a software warehouse creation request, it is specifically used to: in response to the software warehouse creation request, call the cloud object storage service to obtain the software package of the software warehouse template from the cloud object storage service.

[0039] In an exemplary embodiment, the apparatus further comprises:

[0040] A permission configuration acquisition module, used to obtain the permission configuration file corresponding to the software warehouse of the target software;

[0041] The warehouse permission setting module is used to set the permission information corresponding to the software warehouse of the target software based on the permission configuration file.

[0042] In an exemplary embodiment, the software warehouse pulling module includes:

[0043] The permission parameter acquisition module is used to obtain the corresponding permission parameters of the target terminal in response to the pull request of the target terminal to the software warehouse of the target software;

[0044] The second generating module is used to generate a local code repository corresponding to the software warehouse in the target terminal when the permission parameter of the target terminal matches the permission information corresponding to the software warehouse of the target software.

[0045] In an exemplary embodiment, the apparatus further comprises:

[0046] A reminder message generation module, used to generate a reminder message; the reminder message is used to prompt the creation result of the software warehouse of the target software;

[0047] The reminder message sending module is used to send the reminder message to the instant messaging client corresponding to the target project, so that the instant messaging client displays the reminder message.

[0048] In an exemplary embodiment, the apparatus further comprises:

[0049] An extended command file acquisition module, used to acquire an extended command file in response to an extended instruction for a preset command line; the extended command file has an identifier of the preset command line as a suffix, and the extended command file indicates a function of the extended command;

[0050] An extended command file storage module, used to store the extended command file into a storage space indicated by a target storage path; the target storage path is a storage path of the local code repository;

[0051] The extended command generation module is used to generate an extended command corresponding to the extended named file in response to executing the preset command line, and the command identifier of the extended command is the file identifier of the extended command file.

[0052] In an exemplary embodiment, the apparatus further comprises:

[0053] An abnormal log detection module, used to detect abnormal logs in the error log aggregation system; the abnormal logs are generated by the error log aggregation system when an error occurs in software in the software collection;

[0054] The error reminder message sending module is used to generate an error reminder message based on the abnormal log when the abnormal log is detected, and send the error reminder message to the instant messaging client corresponding to the target project, so that the instant messaging client displays the error reminder message.

[0055] In an exemplary embodiment, the apparatus further comprises:

[0056] A usage count acquisition module, used to acquire the usage count of each software in the software set within a preset time period;

[0057] The visualization chart generating module is used to generate a visualization chart based on the number of times each software in the software collection is used within a preset time period.

[0058] On the other hand, an electronic device is provided, comprising a processor and a memory, wherein the memory stores at least one instruction or at least one program, and the at least one instruction or the at least one program is loaded and executed by the processor to implement the software development method of any of the above aspects.

[0059] On the other hand, a computer-readable storage medium is provided, in which at least one instruction or at least one program is stored, and the at least one instruction or the at least one program is loaded and executed by a processor to implement a software development method as described in any of the above aspects.

[0060] On the other hand, a computer program product or a computer program is provided, the computer program product or the computer program includes computer instructions, the computer instructions are stored in a computer-readable storage medium. A processor of an electronic device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the electronic device executes the software development method of any of the above aspects.

[0061] The embodiment of the present application responds to a target terminal's request to run the target software in the software set corresponding to the target project, parses the version information of the target software, determines the basic package dependency relationship based on the version information of the target software, and then parses the dependent software package information based on the basic package dependency relationship of the target software, the dependent software package information indicates the version information of the software package required to run the target software, and calls the cloud object storage service to obtain the target software package and at least one dependent software package from the cloud storage service object based on the version information of the target software and the dependent software package information, and then calls the software package management service to reference the target software package and at least one dependent software package to build a development environment for the target software on the target terminal, so that the software in the development environment and the dependencies required for development are obtained from the cloud object storage service, which is a centralized software platform, thereby realizing collaborative development of developers in different networks, saving the time required for developers to build a development environment, and improving software development efficiency and the stability of software quality. BRIEF DESCRIPTION OF THE DRAWINGS

[0062] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.

[0063] Figure 1 It is a schematic diagram of an implementation environment provided by an embodiment of the present application;

[0064] Figure 2 It is a flowchart of a software development method provided in an embodiment of the present application;

[0065] Figure 3 It is an example of the software set corresponding to the different projects provided in the embodiments of the present application;

[0066] Figure 4 This is an example of parsing the dependent software package information of the target software provided by the embodiment of the present application;

[0067] Figure 5 It is a flowchart of another software development method provided in an embodiment of the present application;

[0068] Figure 6 It is a flowchart of another software development method provided in an embodiment of the present application;

[0069] Figure 7 It is a flowchart of another software development method provided in an embodiment of the present application;

[0070] Figure 8a It is an example of a software warehouse template provided in an embodiment of the present application;

[0071] Figure 8b Shown Figure 8a An example of a template snippet of the software repository template shown;

[0072] Fig. 9 is an example of a continuous integration configuration file provided in an embodiment of the present application;

[0073] Fig.10a This is an example of a code repository provided in an embodiment of the present application;

[0074] Fig.10b It is an example of a development environment for target software constructed according to an embodiment of the present application;

[0075] Fig.11 It is a flowchart of another software development method provided in an embodiment of the present application;

[0076] Fig.12 It is a structural block diagram of a software development device provided in an embodiment of the present application;

[0077] Fig.13 It is a hardware structure block diagram of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0078] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of this application.

[0079] It should be noted that the terms "first", "second", etc. in the specification and claims of the present application 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 interchangeable where appropriate, so that the embodiments of the present application described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, for example, a process, method, system, product or server that includes a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.

[0080] It is understandable that in the specific implementation of this application, related data such as user information is involved. When the above embodiments of this application are applied to specific products or technologies, user permission or consent is required, and the collection, use and processing of relevant data need to comply with relevant laws, regulations and standards of relevant countries and regions.

[0081] The terms involved in the embodiments of the present application are explained below.

[0082] Cloud Object Storage (COS) is a distributed storage service that has no directory hierarchy, no data format restrictions, can accommodate massive amounts of data, and supports HTTP / HTTPS protocol access. COS has no capacity limit on the storage bucket space and does not require partition management. It is suitable for a variety of scenarios such as CDN data distribution, data processing, or big data computing and analysis.

[0083] Continuous Integration (CI) / Continuous Deployment (CD): In software engineering, the Development and Operation (DevOps) practice involves the continuous development, continuous testing, continuous integration, and continuous deployment of software applications throughout the development lifecycle. CI / CD usually refers to the combined practice of continuous integration and continuous delivery or continuous deployment. CI / CD bridges the gap between development and operations by implementing automation in the building, testing, and deployment of applications.

[0084] Sentry: is a cross-platform application error detection system that focuses on error reporting.

[0085] Metabase: is an open source, easy-to-use data visualization and reporting tool that helps non-technical people create complex data analysis and reports without writing any code. It provides an intuitive interface that can connect to many different types of databases (such as MySQL, PostgreSQL, MongoDB, etc.) and allows users to perform queries, make charts and dashboards by dragging and dropping.

[0086] Cookiecutter: is a command line tool for creating project skeletons. It quickly generates project structures and files based on templates. Cookiecutter supports project templates written in multiple programming languages, such as Python, JavaScript, Ruby, etc. Usually, when developers create a new project, they may have to build the project structure from scratch, but with Cookiecutter, they can easily generate the project structure from the templates that have been created, saving a lot of time.

[0087] See also Figure 1 , which is a schematic diagram of an implementation environment provided by an embodiment of the present application, the implementation environment includes a terminal 110 and a server 120, wherein the terminal 110 and the server 120 can communicate via a wired or wireless network connection.

[0088] The terminal 110 includes but is not limited to a mobile phone, a computer, an intelligent voice interaction device, an intelligent home appliance, a vehicle terminal, an aircraft, etc. The user can access the software package management platform through the terminal 110, and the server 120 can be a server associated with the software package management platform. The software development method can be applied to a terminal, a server, or a system including a terminal and a server.

[0089] Among them, the server can be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN (Content Delivery Network) and big data and artificial intelligence platforms.

[0090] The embodiments of the present application can be applied to various scenarios, including but not limited to cloud technology, artificial intelligence, smart transportation, assisted driving, etc.

[0091] Among them, cloud technology refers to a hosting technology that unifies hardware, software, network and other resources in a wide area network or local area network to realize data computing, storage, processing and sharing. Cloud technology is a general term for network technology, information technology, integration technology, management platform technology, application technology, etc. based on the cloud computing business model application. It can form a resource pool, which is used on demand and is flexible and convenient. Cloud computing technology will become an important support. The background services of the technical network system require a large amount of computing and storage resources, such as video websites, picture websites and more portal websites. With the high development and application of the Internet industry, each item may have its own identification mark in the future, and all need to be transmitted to the background system for logical processing. Data of different levels will be processed separately. All kinds of industry data require strong system backing support, which can only be achieved through cloud computing.

[0092] Cloud storage is a new concept that extends and develops from the concept of cloud computing. A distributed cloud storage system (hereinafter referred to as storage system) refers to a storage system that uses cluster applications, grid technology, and distributed storage file systems to bring together a large number of different types of storage devices (storage devices are also called storage nodes) in the network through application software or application interfaces to work together and provide external data storage and business access functions.

[0093] At present, the storage method of the storage system is: create a logical volume, and when creating the logical volume, allocate physical storage space for each logical volume. The physical storage space may be composed of disks of a storage device or several storage devices. The client stores data on a logical volume, that is, stores the data on the file system. The file system divides the data into many parts, each of which is an object. The object not only contains data but also contains additional information such as data identification (ID, ID entity). The file system writes each object into the physical storage space of the logical volume, and the file system records the storage location information of each object, so that when the client requests to access the data, the file system can allow the client to access the data according to the storage location information of each object. The process of allocating physical storage space for the logical volume by the storage system is specifically: according to the capacity estimation of the objects stored in the logical volume (the estimation often has a large margin relative to the capacity of the actual objects to be stored) and the group of independent redundant disk array (RAID, Redundant Array of Independent Disk), the physical storage space is pre-divided into stripes. A logical volume can be understood as a stripe, so that the physical storage space is allocated to the logical volume.

[0094] See also Figure 2, which shows a flow chart of a software development method provided by an embodiment of the present application. It should be noted that this specification provides method operation steps as described in the embodiment or flow chart, but more or fewer operation steps may be included based on conventional or non-creative labor. The order of steps listed in the embodiment is only one way of executing the steps among many orders, and does not represent the only order of execution. When the system or product is executed in practice, it can be executed in sequence or in parallel according to the method shown in the embodiment or the accompanying drawings (for example, in a parallel processor or multi-threaded processing environment). Specifically, Figure 2 As shown, the method may include:

[0095] S201 , in response to a target terminal's request to run target software in a software set corresponding to a target project, parsing version information of the target software.

[0096] The target terminal may be a terminal having the target project development authority.

[0097] In a specific implementation, the software set corresponding to the target project may be presented on the interface of the target terminal, and the software set includes multiple software tools involved in the target project. It is understandable that different projects may involve different software tools, such as Figure 3 Shown are examples of software collections corresponding to different projects.

[0098] When the user of the target terminal triggers (such as clicking) a software (i.e., the target software) in the software set corresponding to the target item, the terminal converts the trigger operation into a command of a preset command line, and sends a run request to the server based on the command of the preset command line. The server then responds to the run request and parses the version information of the target software.

[0099] In a specific implementation, when the server parses the version information of the target software, if the running request carries the version information of the target software, the version information in the running request can be directly extracted; if the running request does not carry the version information of the target software, the server can use the latest version information of the target software as the parsed version information of the target software.

[0100] S203: Determine the basic package dependency of the target software based on the version information of the target software.

[0101] Among them, the basic package dependency of the target software indicates the basic-level software packages that the target software depends on. It can be understood that the basic-level software packages may also depend on other software packages, that is, the software packages that the target software indirectly depends on through the basic-level software packages.

[0102] S205: Based on the basic package dependency relationship, parse out dependent software package information.

[0103] The dependent software package information indicates the version information of the software package required to run the target software. It should be noted that the software package required to run the target software includes both directly dependent software packages and software packages indirectly dependent through directly dependent software packages, and the indirectly dependent software packages are also software packages required to run the target software.

[0104] In a specific implementation, the version information of each required dependent software package in the dependent software package information is the latest version information, and the dependent software package information of the target software can be obtained by performing layer-by-layer analysis through the basic package dependency relationship of the target software.

[0105] like Figure 4 The figure shows an example of parsing the dependent software package information of the target software provided by an embodiment of the present application. The entire dependent software package information parsing process presents a tree structure, wherein "vacuumHoudini" is the target software, and the version information of the target software parsed by the server is 2.12.0. The basic package dependency relationship of this version of the target software points to the software packages boost, vacpy-2.4+, python-2.5, and lin64. Layer-by-layer parsing is performed based on the basic package dependency relationship, and the latest version information of each software package required to run the target software package can be obtained, thereby avoiding manual filling in of dependencies.

[0106] S207, calling a cloud object storage service, obtaining a target software package from the cloud object storage service based on the version information of the target software, and obtaining at least one dependent software package from the cloud object storage service based on the dependent software package information.

[0107] Among them, the cloud object storage service (COS) stores multiple software packages based on objects, and these multiple software packages are all compiled executable program files. The cloud object storage service can be accessed based on the HTTP / HTTPS protocol, and can be understood as a centralized software platform. Developers in different local area networks can access it. The multiple software packages in the cloud object storage service can be considered as centralized software packages and can be called remotely.

[0108] S209, calling a software package management service, referencing the target software package and the at least one dependent software package, and building a development environment for the target software on the target terminal.

[0109] The software package management service may be an open source software package management service such as Rez. The development environment of the target software built on the target terminal is isolated from the local environment of the target terminal.

[0110] In a specific implementation, after the server obtains the target software package and at least one dependent software package, it can call the application programming interface (API) of the software package management service, and reference the target software package and at least one dependent software package through the software package management service to build a development environment for the target software on the target terminal.

[0111] In the above implementation, the target software package and the required dependent software package in the constructed development environment are all from the centralized software platform, i.e., COS, and do not need to be installed locally, thereby realizing the collaborative development of developers in different networks, providing a collaborative development environment, saving the time required for developers to build the development environment, and improving the software development efficiency and the stability of software quality. Moreover, in the case where the version information of the target software is not specified, it can be ensured that the development environment of the latest version of the target software is constructed on each terminal, realizing the unification of the development environment of the target software, which is conducive to improving the efficiency and quality of collaborative development.

[0112] In an exemplary embodiment, Figure 5 As shown, after step S209, the method may further include:

[0113] S501, obtaining a code merge request for the target software.

[0114] The code merge request indicates the update code and trunk code branch of the target software, and the update code is developed based on the development environment of the target software.

[0115] S503, calling a continuous integration tool to obtain the update code of the target software and the main code branch, merging the update code into the main code branch, and obtaining the code to be compiled.

[0116] Specifically, the main code branch may be obtained from a software repository corresponding to the target software based on the main code branch indicated in the code merge request.

[0117] For example, see Figure 6 As shown, merging the updated code into the main code branch to obtain the code to be compiled may include:

[0118] S601: Perform code check on the update code.

[0119] In a specific implementation, the updated code can be checked based on a code checking tool. It is understandable that the code checking tool can be configured based on the writing language of the software in the embodiment of the present application. Taking Python language as an example, Python code checking tools can mainly include the following types of tools:

[0120] Code formatting tools: such as AutoPEP8, YAPF, and Black. Among them, AutoPEP8 automatically formats Python code according to the PEP8 specification to make the code conform to a unified code style. YAPF can automatically modify the code format according to the defined rules. Black is an automated code formatting tool that is dedicated to reducing programmers' debates on code style.

[0121] Code static checking tools (linting): such as Pylint, Flake8, Pyflakes and Pycodestyle. Among them, Pylint can check code errors, style issues and coding standards; Flake8 integrates multiple controllers for Python code checking, including PyFlakes, Pycodestyle and cyclomatic complexity checking; Pyflakes is a simple Python syntax error checking tool that focuses on identifying potential code problems; Pycodestyle checks Python code style based on the rules of the PEP-8 style guide.

[0122] Type checking tools: such as Mypy and Pyright. Mypy is an optional static type checking tool for checking potential type errors in Python code; Pyright is a static type checker written in TypeScript that provides functions such as auto-completion and type inference.

[0123] Security checking tools: such as Bandit and PyT. Bandit is a security checking tool for Python applications, used to detect whether there are security vulnerabilities in the project; PyT is a static security checking tool used to detect vulnerabilities in Python Web applications.

[0124] Code complexity measurement tools: For example, Radon, which is a code complexity analysis tool for Python code, calculates metrics such as cyclomatic complexity and maintainability index.

[0125] S603, when the code check of the updated code passes, build a first test environment based on the continuous integration tool, test the updated code in the first test environment, and if the test is successful, merge the updated code into the trunk code branch to obtain the code to be compiled.

[0126] The testing of the updated code in the first testing environment includes unit testing, performance testing, and code coverage testing.

[0127] S505: Compile the code to be compiled to generate a version update software package of the target software and description information of the version update software package, wherein the description information includes version information and basic package dependency.

[0128] For example, see Figure 6 Before compiling the code to be compiled, the method may further include:

[0129] S605: Perform code checking on the code to be compiled.

[0130] S607, when the code check of the code to be compiled passes, build a second test environment based on the continuous integration tool, test the code to be compiled in the second test environment, and if the test is successful, execute the step of compiling the code to be compiled.

[0131] Among them, code checking of large compiled codes can be based on a code checking tool. It can be understood that the code checking tool can be configured based on the writing language of the software in the embodiment of the present application. Still taking Python language as an example, the aforementioned Python code checking tool can be used to perform code checking on the compiled code.

[0132] If the code check of the code to be compiled passes, a second test environment is built based on the continuous integration tool, and the code to be compiled is tested in the second test environment. If the test is successful, the compilation of the code to be compiled is performed again to improve the quality of the compiled software package and ensure the stability of the quality of the software package.

[0133] The tests on the compiled code in the second test environment may include unit testing, performance testing, and code coverage testing.

[0134] S507: Upload the version update software package of the target software to the cloud object storage service, so that the cloud object storage service stores the version update software package based on objects, and stores description information of the version update software package in a database.

[0135] The database is used to store description information of multiple software packages in the cloud storage object service.

[0136] Based on this, when the aforementioned step S203 determines the basic package dependencies of the target software based on the version information of the target software, the target description information matching the version information of the target software can be searched from the database, and then the basic package dependencies in the target description information are obtained to obtain the basic package dependencies of the target software.

[0137] In the above implementation, through the continuous integration tool, the updated code submitted by the developer will automatically undergo remote continuous integration build and run testing to ensure the stability of the deployed software code, and automatically build the software package and deploy it in the cloud object storage, realizing purely centralized software deployment, so that users can update software, tools and plug-ins without being aware of it, without having to install the corresponding software locally.

[0138] In actual applications, during the entire building process of the software package, build progress reminder messages can be sent to the instant messaging client corresponding to the target project based on different stages of the building process. For example, a reminder message for starting the build can be sent after a code merge request is obtained, and a reminder message for successful build can also be sent after the build is successful, so that developers can be informed of the software update progress in a timely manner and improve software development efficiency.

[0139] In an exemplary embodiment, Figure 7 As shown, the aforementioned step S201, in response to the target terminal's request to run the target software in the software set corresponding to the target project, may include:

[0140] S701 , in response to a software warehouse creation request for the target project, create a software warehouse for the target software based on a software warehouse template.

[0141] The software repository template indicates the structure and related configuration of the software repository. Figure 8a Shown is an example of a repository template, which is a scaffolding template hierarchy. Figure 8b Shown Figure 8a A template fragment of a software repository template is shown, which illustrates the content of a file in the software repository template.

[0142] In an exemplary embodiment, in response to a software warehouse creation request for the target project, creating a software warehouse of the target software based on a software warehouse template may include:

[0143] In response to the software repository creation request, obtaining a software repository template and a continuous integration configuration file;

[0144] Based on the software warehouse template and the continuous integration configuration file, a software warehouse of the target software and the continuous integration tool are generated.

[0145] The continuous integration configuration file is used to indicate the arrangement relationship and execution logic between multiple execution steps of the continuous integration tool. Fig. 9The figure shows an example of a continuous integration configuration file. In a specific implementation, a yaml file can be used to configure a continuous integration configuration file, so that a continuous integration configuration file can control the construction of thousands of software repositories. In a specific implementation, the command line tool CookieCutter can be used to create a software repository based on a software repository template. The software repository and continuous integration tools can be generated in a configurable manner through template rendering.

[0146] In a specific implementation, the software warehouse template can also be stored as a software package in a cloud storage object. Then, when responding to a software warehouse creation request and obtaining the software warehouse template, the cloud object storage service can be called in response to the software warehouse creation request to obtain the software package of the software warehouse template from the cloud object storage service, thereby improving the efficiency of collaborative development.

[0147] S703: In response to a pull request from a target terminal for a software repository of the target software, generate a local code repository corresponding to the software repository at the target terminal.

[0148] S705: Respond to a running request initiated by the target terminal based on the local code repository.

[0149] In the specific implementation, developers can initiate corresponding run requests by triggering specified commands in the local code repository, such as Fig.10a In the code repository example shown in the figure, you can initiate a corresponding run request by double-clicking "_open_dev_shell.cmd", and then build a corresponding development environment on the target terminal, such as Fig.10b Shown is an example of a development environment for building target software.

[0150] In an exemplary embodiment, Fig.11 As shown, after creating the software warehouse of the target software based on the software warehouse template, the following steps may also be included:

[0151] S1101, obtaining a rights configuration file corresponding to a software warehouse of a target software;

[0152] Specifically, corresponding permission information may be set for the software warehouse of the target software based on the permission configuration file.

[0153] S1103: Based on the permission configuration file, permission information corresponding to the software warehouse of the target software is set.

[0154] The permission information is used to perform permission verification when pulling the software repository of the target software. Pulling the software repository of the target software is allowed only when the permission verification passes.

[0155] Based on this, in an exemplary embodiment, continue to refer to Fig.11 , the aforementioned step S703 may include:

[0156] S1105 , in response to a pull request from a target terminal to a software repository of the target software, obtaining permission parameters corresponding to the target terminal.

[0157] Among them, the authority parameter corresponding to the target terminal can be determined based on the authority information. For example, if the authority information involves a preset trunk branch identifier, then the authority parameter corresponding to the target terminal includes its current trunk branch identifier.

[0158] S1107, when the permission parameter of the target terminal matches the permission information corresponding to the software warehouse of the target software, a local code warehouse corresponding to the software warehouse is generated in the target terminal.

[0159] In the embodiment of the present application, multiple preset trunk branch identifiers can be set based on actual conditions, and different preset trunk branch identifiers can be distinguished by different locations, such as can: location A, cgg: location B, etc. Then, when a pull request is received, the trunk branch identifier to which the target terminal currently belongs can be obtained, and then the trunk branch identifier to which it currently belongs is matched with the permission information of the software warehouse. If there is a matching preset trunk branch identifier in the permission information of the software warehouse, it is determined that the permission parameters of the target terminal match the permission information of the software warehouse, so as to allow the target terminal to pull the software warehouse to generate a local code warehouse locally.

[0160] In an exemplary embodiment, see Fig.11 In step S701, after creating a software warehouse of the target software based on a software warehouse template in response to a software warehouse creation request for the target project, the method may further include:

[0161] S1109, generating a reminder message, wherein the reminder message is used to prompt the creation result of the software warehouse of the target software.

[0162] S1111: Send the reminder message to the instant messaging client corresponding to the target project, so that the instant messaging client displays the reminder message.

[0163] The reminder message may include the name, description information and corresponding link address of the software warehouse, and of course may also include other more detailed information, which may be set based on actual needs. The above reminder message can improve the efficiency of software collaborative development.

[0164] In an exemplary embodiment, the method may further include: in response to an extended instruction for a preset command line, obtaining an extended command file; the extended command file is suffixed with the identifier of the preset command line, and the extended command file indicates the function of the extended command; storing the extended command file in a storage space indicated by a target storage path; the target storage path is the storage path of the local code repository; in response to executing the preset command line, generating an extended command corresponding to the extended named file, and the command identifier of the extended command is the file identifier of the extended command file.

[0165] For example, if the preset command line is THM, then the extended command file can be a file with the file suffix ".thm", and then the file is placed in the corresponding storage space based on the storage path of the local code repository (such as C:\Users\hallong\.thm\etc). When the THM command is executed again, the extended command corresponding to the ".thm" file can be generated, and the extended command is the .thm file name, so that the extension of the THM command can be easily and conveniently implemented.

[0166] In an exemplary embodiment, the method may also include: detecting an exception log in an error log aggregation system; the exception log is generated by the error log aggregation system when an error occurs in the software in the software collection; when the exception log is detected, generating an error reminder message based on the exception log, and sending the error reminder message to the instant messaging client corresponding to the target project, so that the instant messaging client displays the error reminder message.

[0167] Specifically, the error log aggregation system can be Sentry. By integrating the Sentry error log aggregation system, when an error occurs in the software in the software collection, an error reminder message can be generated based on the log corresponding to the error and sent to the instant messaging client corresponding to the target project, which makes it easier for developers to follow up and solve problems in real time, thereby improving the quality of software development.

[0168] The error reminder message may include the cause of the error and the acquisition path of the corresponding abnormal log in the error log aggregation system.

[0169] In an exemplary embodiment, the method may further include: obtaining the number of times each software in the software collection is used within a preset time period; and generating a visualization chart based on the number of times each software in the software collection is used within the preset time period.

[0170] The preset time period may be set based on actual needs, for example, it may be one or more of the current day, the most recent week, or the most recent quarter.

[0171] In specific implementation, corresponding visualization charts can be generated by integrating data visualization and reporting tools such as Metabase, which can facilitate the planning of subsequent iteration plans and improve the rationality of software updates.

[0172] Corresponding to the software development methods provided in the above-mentioned embodiments, the embodiments of the present application also provide a software development device. Since the software development device provided in the embodiments of the present application corresponds to the software development methods provided in the above-mentioned embodiments, the implementation methods of the aforementioned software development methods are also applicable to the software development device provided in this embodiment and will not be described in detail in this embodiment.

[0173] See also Fig.12 , which is a schematic diagram of the structure of a software development device provided in an embodiment of the present application, the device has the function of implementing the software development method in the above method embodiment, and the function can be implemented by hardware or by hardware executing corresponding software. Fig.12 As shown, the software development device 1200 may include:

[0174] The first parsing module 1210 is used to parse the version information of the target software in the software set corresponding to the target project in response to the target terminal's request to run the target software;

[0175] A basic dependency determination module 1220, configured to determine the basic package dependency of the target software based on the version information of the target software;

[0176] The second parsing module 1230 is used to parse out dependent software package information based on the basic package dependency relationship; the dependent software package information indicates version information of the software package required to run the target software;

[0177] The software package acquisition module 1240 is used to call the cloud object storage service, obtain the target software package from the cloud object storage service based on the version information of the target software, and obtain at least one dependent software package from the cloud object storage service based on the dependent software package information; the cloud object storage service stores multiple software packages based on objects;

[0178] The development environment building module 1250 is used to call the software package management service, reference the target software package and the at least one dependent software package, and build the development environment of the target software on the target terminal.

[0179] In an exemplary embodiment, the apparatus 1200 further includes:

[0180] A merge request acquisition module, used to acquire a code merge request for the target software; the code merge request indicates an update code and a trunk code branch of the target software, and the update code is developed based on a development environment of the target software;

[0181] A code merging module is used to call a continuous integration tool to obtain the update code of the target software and the trunk code branch, merge the update code into the trunk code branch, and obtain the code to be compiled;

[0182] A compiling module, used to compile the code to be compiled, generate a version update software package of the target software and description information of the version update software package, wherein the description information includes version information and basic package dependency;

[0183] The object storage module is used to upload the version update software package of the target software to the cloud object storage service so that the cloud object storage service stores the version update software package based on objects, and stores the description information of the version update software package in a database; the database is used to store the description information of multiple software packages in the cloud storage object service.

[0184] In an exemplary embodiment, the code merging module includes:

[0185] A first code checking module, used for performing code checking on the update code;

[0186] The first code testing module is used to build a first test environment based on the continuous integration tool when the code check of the updated code passes, test the updated code in the first test environment, and merge the updated code into the trunk code branch to obtain the code to be compiled if the test is successful.

[0187] In an exemplary embodiment, the apparatus 1200 further includes:

[0188] A second code checking module, used for performing code checking on the code to be compiled;

[0189] The second code testing module is used to build a second test environment based on the continuous integration tool when the code check of the code to be compiled passes, and test the code to be compiled in the second test environment. If the test is successful, the compilation module executes it.

[0190] In an exemplary embodiment, the basic dependency determination module includes:

[0191] A description information search module, used to search the database for target description information that matches the version information of the target software;

[0192] The basic package dependency acquisition module is used to acquire the basic package dependency in the target description information to obtain the basic package dependency of the target software.

[0193] In an exemplary embodiment, the first parsing module 1210 includes:

[0194] A software warehouse creation module, configured to create a software warehouse of the target software based on a software warehouse template in response to a software warehouse creation request for the target project;

[0195] A software warehouse pulling module, configured to generate a local code warehouse corresponding to the software warehouse at the target terminal in response to a pull request of the target software from the target terminal;

[0196] A request initiating module is used to respond to an operation request initiated by the target terminal based on the local code repository.

[0197] In an exemplary embodiment, the software warehouse creation module includes:

[0198] A template and configuration acquisition module, used to obtain a software repository template and a continuous integration configuration file in response to a software repository creation request; the continuous integration configuration file is used to indicate the arrangement relationship and execution logic between multiple execution steps of the continuous integration tool;

[0199] The first generating module is used to generate the software repository of the target software and the continuous integration tool based on the software repository template and the continuous integration configuration file.

[0200] In an exemplary embodiment, when the template and configuration acquisition module obtains a software warehouse template in response to a software warehouse creation request, it is specifically used to: in response to the software warehouse creation request, call the cloud object storage service to obtain the software package of the software warehouse template from the cloud object storage service.

[0201] In an exemplary embodiment, the apparatus 1200 further includes:

[0202] A permission configuration acquisition module, used to obtain the permission configuration file corresponding to the software warehouse of the target software;

[0203] The warehouse permission setting module is used to set the permission information corresponding to the software warehouse of the target software based on the permission configuration file.

[0204] In an exemplary embodiment, the software warehouse pulling module includes:

[0205] The permission parameter acquisition module is used to obtain the corresponding permission parameters of the target terminal in response to the pull request of the target terminal to the software warehouse of the target software;

[0206] The second generating module is used to generate a local code repository corresponding to the software warehouse in the target terminal when the permission parameter of the target terminal matches the permission information corresponding to the software warehouse of the target software.

[0207] In an exemplary embodiment, the apparatus 1200 further includes:

[0208] A reminder message generation module, used to generate a reminder message; the reminder message is used to prompt the creation result of the software warehouse of the target software;

[0209] The reminder message sending module is used to send the reminder message to the instant messaging client corresponding to the target project, so that the instant messaging client displays the reminder message.

[0210] In an exemplary embodiment, the apparatus 1200 further includes:

[0211] An extended command file acquisition module, used to acquire an extended command file in response to an extended instruction for a preset command line; the extended command file has an identifier of the preset command line as a suffix, and the extended command file indicates a function of the extended command;

[0212] An extended command file storage module, used to store the extended command file into a storage space indicated by a target storage path; the target storage path is a storage path of the local code repository;

[0213] The extended command generation module is used to generate an extended command corresponding to the extended named file in response to executing the preset command line, and the command identifier of the extended command is the file identifier of the extended command file.

[0214] In an exemplary embodiment, the apparatus 1200 further includes:

[0215] An abnormal log detection module, used to detect abnormal logs in the error log aggregation system; the abnormal logs are generated by the error log aggregation system when an error occurs in software in the software collection;

[0216] The error reminder message sending module is used to generate an error reminder message based on the abnormal log when the abnormal log is detected, and send the error reminder message to the instant messaging client corresponding to the target project, so that the instant messaging client displays the error reminder message.

[0217] In an exemplary embodiment, the apparatus 1200 further includes:

[0218] A usage count acquisition module, used to acquire the usage count of each software in the software set within a preset time period;

[0219] The visualization chart generating module is used to generate a visualization chart based on the number of times each software in the software collection is used within a preset time period.

[0220] It should be noted that the device provided in the above embodiment, when implementing its functions, is only illustrated by the division of the above functional modules. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. In addition, the device and method embodiments provided in the above embodiment belong to the same concept, and the specific implementation process is detailed in the method embodiment, which will not be repeated here.

[0221] An embodiment of the present application provides an electronic device, which includes a processor and a memory, wherein the memory stores at least one instruction or at least one program, and the at least one instruction or the at least one program is loaded and executed by the processor to implement any one of the software development methods provided in the above method embodiments.

[0222] The memory can be used to store software programs and modules. The processor executes various functional applications and data processing by running the software programs and modules stored in the memory. The memory can mainly include a program storage area and a data storage area, wherein the program storage area can store an operating system, application programs required for functions, etc.; the data storage area can store data created according to the use of the device, etc. In addition, the memory can include a high-speed random access memory and can also include a non-volatile memory, such as at least one disk storage device, a flash memory device, or other volatile solid-state storage devices. Accordingly, the memory can also include a memory controller to provide the processor with access to the memory.

[0223] The method embodiments provided in the embodiments of the present application may be executed in a computer terminal, a server or a similar computing device, that is, the above-mentioned electronic device may include a computer terminal, a server or a similar computing device. Fig.13 : is a hardware structure block diagram of an electronic device running a software development method provided in an embodiment of the present application, taking running on a server as an example, Fig.13 is a hardware structure diagram of a server running a software development method provided by an embodiment of the present invention, such as Fig.13As shown, the server 1300 may have relatively large differences due to different configurations or performances, and may include one or more central processing units (CPU) 1310 (the processor 1310 may include but is not limited to a processing device such as a microprocessor MCU or a programmable logic device FPGA), a memory 1330 for storing data, and one or more storage media 1320 (such as one or more mass storage devices) for storing application programs 1323 or data 1322. Among them, the memory 1330 and the storage medium 1320 can be short-term storage or permanent storage. The program stored in the storage medium 1320 may include one or more modules, each of which may include a series of instruction operations on the server. Furthermore, the central processing unit 1310 can be configured to communicate with the storage medium 1320 and execute a series of instruction operations in the storage medium 1320 on the server 1300. The server 1300 may also include one or more power supplies 1460, one or more wired or wireless network interfaces 1350, one or more input and output interfaces 1340, and / or one or more operating systems 1321, such as Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM, etc.

[0224] The input / output interface 1340 may be used to receive or send data via a network. The specific example of the network may include a wireless network provided by a communication provider of the server 1300. In one example, the input / output interface 1340 includes a network adapter (Network Interface Controller, NIC), which may be connected to other network devices through a base station so as to communicate with the Internet. In one example, the input / output interface 1340 may be a radio frequency (RF) module, which is used to communicate with the Internet wirelessly.

[0225] It can be understood by those skilled in the art that Fig.13 The structure shown is for illustration only and does not limit the structure of the above electronic device. Fig.13 More or fewer components as shown, or with Fig.13 Different configurations are shown.

[0226] An embodiment of the present application also provides a computer-readable storage medium, which can be set in an electronic device to store at least one instruction or at least one program related to implementing a software development method. The at least one instruction or the at least one program is loaded and executed by the processor to implement any software development method provided by the above method embodiments.

[0227] The embodiments of the present application also provide a computer program product or a computer program, which includes computer instructions stored in a computer-readable storage medium. A processor of an electronic device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the electronic device executes any one of the software development methods provided in the above method embodiments.

[0228] Optionally, in this embodiment, the above-mentioned storage medium may include but is not limited to: a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk or an optical disk, and other media that can store program codes.

[0229] It should be noted that the above-mentioned sequence of the embodiments of the present application is for description only and does not represent the advantages and disadvantages of the embodiments. The above-mentioned specific embodiments of this specification are described. Other embodiments are within the scope of the attached claims. In some cases, the actions or steps recorded in the claims can be performed in an order different from that in the embodiments and still achieve the desired results. In addition, the processes depicted in the drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.

[0230] Each embodiment in this specification is described in a progressive manner, and the same or similar parts between the embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.

[0231] A person skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware or by instructing related hardware through a program, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.

[0232] The above description is only a preferred embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application should be included in the protection scope of the present application.

Claims

1. A software development method, characterized in that: The method comprises: In response to a target terminal's request to run a target software in a software set corresponding to a target project, parsing version information of the target software; Determine the basic package dependency of the target software based on the version information of the target software; Based on the basic package dependency relationship, the dependent software package information is parsed; the dependent software package information indicates the version information of the software package required to run the target software; Calling a cloud object storage service, obtaining a target software package from the cloud object storage service based on the version information of the target software, and obtaining at least one dependent software package from the cloud object storage service based on the dependent software package information; the cloud object storage service stores multiple software packages based on objects; The software package management service is called, the target software package and the at least one dependent software package are referenced, and a development environment of the target software is constructed on the target terminal.

2. The method according to claim 1, characterized in that After the target terminal builds the development environment of the target software, the method further includes: Obtaining a code merge request for the target software; the code merge request indicates an update code and a trunk code branch of the target software, the update code being developed based on a development environment of the target software; Calling a continuous integration tool to obtain the update code of the target software and the main code branch, merging the update code into the main code branch, and obtaining the code to be compiled; Compiling the code to be compiled to generate a version update software package of the target software and description information of the version update software package, wherein the description information includes version information and basic package dependency; The version update software package of the target software is uploaded to a cloud object storage service so that the cloud object storage service stores the version update software package based on objects, and stores description information of the version update software package in a database; the database is used to store description information of multiple software packages in the cloud storage object service.

3. The method according to claim 2, characterized in that The step of merging the updated code into the main code branch to obtain the code to be compiled includes: Performing code checking on the update code; When the code check of the updated code passes, a first test environment is constructed based on the continuous integration tool, and the updated code is tested in the first test environment. If the test is successful, the updated code is merged into the main code branch to obtain the code to be compiled.

4. The method according to claim 2, characterized in that: Before compiling the code to be compiled, the method further includes: Performing code checking on the code to be compiled; When the code check of the code to be compiled passes, a second test environment is constructed based on the continuous integration tool, the code to be compiled is tested in the second test environment, and when the test is successful, the step of compiling the code to be compiled is executed.

5. The method according to claim 2, characterized in that: The determining, based on the version information of the target software, the basic package dependency of the target software includes: Searching the database for target description information that matches the version information of the target software; Obtain the basic package dependency relationship in the target description information to obtain the basic package dependency relationship of the target software.

6. The method according to claim 1, characterized in that The responding to the target terminal's request to run the target software in the software set corresponding to the target project includes: In response to a software warehouse creation request for the target project, creating a software warehouse of the target software based on a software warehouse template; In response to a pull request from a target terminal to a software repository of the target software, generating a local code repository corresponding to the software repository at the target terminal; Responding to a running request initiated by the target terminal based on the local code repository.

7. The method according to claim 6, characterized in that The step of creating a software warehouse of the target software based on a software warehouse template in response to a software warehouse creation request for the target project includes: In response to a software repository creation request, obtaining a software repository template and a continuous integration configuration file; the continuous integration configuration file is used to indicate an orchestration relationship and execution logic between multiple execution steps of a continuous integration tool; Based on the software warehouse template and the continuous integration configuration file, a software warehouse of the target software and the continuous integration tool are generated.

8. The method according to claim 7, characterized in that The step of obtaining a software warehouse template in response to the software warehouse creation request includes: In response to the software repository creation request, the cloud object storage service is called to obtain the software package of the software repository template from the cloud object storage service.

9. The method according to claim 6, characterized in that The method further comprises: Obtaining a rights configuration file corresponding to the software warehouse of the target software; Based on the permission configuration file, permission information corresponding to the software warehouse of the target software is set.

10. The method according to claim 9, characterized in that The step of generating, in response to a pull request from a target terminal to a software repository of the target software, a local code repository corresponding to the software repository at the target terminal includes: In response to a pull request from a target terminal to a software repository of the target software, obtaining a corresponding permission parameter of the target terminal; When the permission parameter of the target terminal matches the permission information corresponding to the software warehouse of the target software, a local code warehouse corresponding to the software warehouse is generated at the target terminal.

11. The method according to claim 6, characterized in that After creating a software warehouse of the target software based on a software warehouse template in response to the software warehouse creation request, the method further includes: Generate a reminder message; the reminder message is used to prompt the creation result of the software warehouse of the target software; The reminder message is sent to the instant messaging client corresponding to the target project, so that the instant messaging client displays the reminder message.

12. The method according to claim 6, characterized in that The method further comprises: In response to an extension instruction for a preset command line, an extension command file is acquired; the extension command file is suffixed with the identifier of the preset command line, and the extension command file indicates the function of the extension command; The extended command file is stored in the storage space indicated by the target storage path; the target storage path is the storage path of the local code repository; In response to executing the preset command line, an extended command corresponding to the extended named file is generated, and the command identifier of the extended command is the file identifier of the extended command file.

13. The method according to claim 1, characterized in that The method further comprises: Detecting an abnormal log in an error log aggregation system; the abnormal log is generated by the error log aggregation system when an error occurs in software in the software collection; When the abnormal log is detected, an error reminder message is generated based on the abnormal log, and the error reminder message is sent to the instant messaging client corresponding to the target project, so that the instant messaging client displays the error reminder message.

14. The method according to claim 1, characterized in that The method further comprises: Obtaining the number of times each software in the software set is used within a preset time period; A visualization chart is generated based on the number of times each software in the software collection is used within a preset time period.

15. A software development device, characterized in that: The device comprises: A first parsing module, configured to parse version information of the target software in response to a target terminal's request to run the target software in the software set corresponding to the target project; A basic dependency determination module, used to determine the basic package dependency of the target software based on the version information of the target software; A second parsing module is used to parse out dependent software package information based on the basic package dependency relationship; the dependent software package information indicates version information of the software package that the target software needs to depend on to run; a software package acquisition module, configured to call a cloud object storage service, acquire a target software package from the cloud object storage service based on the version information of the target software, and acquire at least one dependent software package from the cloud object storage service based on the dependent software package information; the cloud object storage service stores multiple software packages based on objects; The development environment construction module is used to call the software package management service, reference the target software package and the at least one dependent software package, and construct the development environment of the target software on the target terminal.