My Application
The My Application DocType in TechMaju allows developers to create, manage, and deploy applications within the platform. It provides a streamlined interface for managing custom applications and deploying the applications to higher environments.
Understanding the My Application DocType
Purpose: The My Application DocType is designed to facilitate the creation and management of applications within the TechMaju platform. It allows developers to define application parameters, monitor the progress of application creation, and manage the deployment process.
Function: The My Application DocType enables developers to:
Create a new custom application that will be installed into the instance and also saved in source control. This can only done in the Developer environment.
Deploy the application with an updated version number when changes are ready. This will package all the committed changes together so it can be installed in a higher environment instance such as Test or Production.
Role Required
TM Core Developer: Can create, write, and delete applications.
My Application Fields
Field | Description |
|---|---|
Application Name | The name of the application. |
Status | The current status of the application:
|
Application Version | The version of the application. (This field will show after first deployment) |
Best Practice: Application name has to be unique. It is best to prefix your application with your company name so that it does not conflict with other apps and python libraries.
Procedure
Navigate to Develop > My Application.
Adding a New Application:
Click on '+ Add My Application' to open the creation form.
Fill in the required fields: Application Name.
Click on 'Save' to create the application.
The status will initially be set to "Pending".
Creating the Application:
When the application status is "Pending", click on 'Create App' to begin the Application creation process.
A progress bar will indicate the Application creation process.
The status will be set to "Ready to Install".
Installing the Application:
When the application status is "Ready to Install", click on 'Install App' to begin the installation process.
A progress bar will indicate the installation process.
Once installed, the status will change to "Installed".
Now the created Application can be selected as a scope when changes are made for that Application.
When application scope changes are made, Update Sets will be created automatically for the application with respective Update Items that can be committed to source control.
Deploying the Application:
After committing changes with Update Sets to the application, use the 'Deploy' button to group and push the changes to source control so that it can be installed in your higher environments.
Version number format follows: MAJOR.MINOR.PATCH where the deployed version number values must be higher than any previous versions.
Best Practices
Test the application thoroughly in a development environment before pushing it to production.
Regularly commit and update the application version and document any changes made.
Use the 'Deploy' feature to manage application changes effectively and ensure they are applied correctly in higher environments.
FAQ: What is a Module (for export)?
At a high-level, Module serves as the child or children of the Application and in previous versions it was used to place multiple Modules in a single Application. However, this created a monolith structure, and the Frappe community has pivoted away into more modular Application setups. Our TechMaju platform advocates for a 1:1 Application to Module setup and it can be seen when My Applications are created, that a corresponding Module is also created. We currently do not support multiple Modules to a single My Application.
Since TechMaju platform leverages Frappe Framework, it may display some legacy functionalities -- in this case, the Module DocType. In some forms, there may be fields that display the field "Module (for export)" or "Module".
Our team is currently working on replacing the legacy field with "My Application" where applicable to avoid this confusion. For the time being, the "Module" field serves as a placeholder for the "My Application" doctype in order for the related records to be included in the application-scope Update Sets.