I'm doing a google app engine related and I want know that if we can do patch release in GAE. I simply want change a js file.
You can deploy your app any time you like. You can either override the existing version, or create a new version of your app. Then you can specify which version is default in App Engine console for your project.
The deployment process only uploads the files that you have changed.
Related
I'm about to go head first into doing a MAJOR versioning upgrade for a legacy Angular 4 app into an Angular 6 app. I figured I could push the envelope into version 6 at most without completeley bricking the app.
That said, I know I'm about to enter into some gotchas, so I'd like insight from seasoned JavaScript Developers who have already performed these game-breaking updates.
First, I do know that these assumptions are true:
https://update.angular.io/#4.4:6.1l3
I must be all in with the Angular CLI and how it operates. Everything from kickstarting your localhost, creating a new component, to building out the final web app.
Next, here are some things to know about the existing web app:
Angular 4.4.7
ES module loader is, SystemJS.
Source code sits in Bitbucket with a direct connection into a Microsoft Azure Web App provision (NodeJS). Once the final artifact is built out via gulp task, it ships automatically into the cloud.
This web app does NOT use the Angular CLI.
Finally, here is my desired upgrade path for the aforementioned app:
Angular 6.1
ES module loader will be, webpack.
Source code will still sit in Bitbucket with a direct connection into a Microsoft Azure Web App provision (NodeJS). I'd like the final artifact to be built out via gulp task (or whatever modern day task runner applies) it ships automatically into the cloud.
This web app does will leverage the Angular CLI.
Thanks in advance for your insight.
Just take a look at here: https://update.angular.io/
Those steps listed in that link usually work.
The one thing I can say is: upgrade to version 5 and, afterward, to version 6. I've tried before to upgrade by jumping intermediary versions (from 6 to 9) and it was a terrible experience that took me like almost 2 hours in a small project.
I want to create a desktop app with Electron JS and form front end I can use React JS as I'm familiar with it.
I have a good grasp of Python I checked over the internet but they all wanted me to create an API and run it on local I can do that and connect to react electron app but for distribution, I need the user to install Python as well.
I know I can go for node js as a backend but I have a lot of work ready in Python like backend logic and the app will run on desktop only no need to connect to Internet for that.
I need to know if I need user to install python as well. I don't want that.
I think this is exactly what you're looking for, it's a reusable Electron template that uses a React front-end with Redux & Redux Toolkit, and is integrated with Python/Flask for microservices. Packaging functions with build scripts are available for Windows and macOS.
You can just copy the parts you need or clone the template and use it.
https://github.com/iPzard/electron-react-python-template
If you don't want the user to have to install Python then you need to use something to package it together. Check out Pyinstaller, once you've created an exe it can be distributed and doesn't require the user to install Python
https://www.pyinstaller.org/
I have an Electron 1.7.9 Windows application that has been working well and I decided to update to the latest version of Electron, 2.0.8. The application needs to copy some template files from the Electron repository to the users file system. With the 1.7.9 application this works fine, however with 2.0.8 the copy fails because the template file cannot be found. The path to the template file relative to the application is:
resources\app.asar\Templates\ICC_V8\Startup.S
When I debug the application, I am using VS Code, it works just fine.
Any input would be much appreciated,
Sid
This issue has been resolved by moving the templates out of the repository of the Electron app and updating the code to access the templates in the new location.
While this complicates the build of the app, using electron-packager, it does resolve the issue and brings with it the additional benefit of being able to maintain the template files without needing to rebuild the app.
I'm working on a Windows Store App (JavaScript/HTML/CSS) that will be deployed directly to devices in our enterprise.
I want to keep the datasources (urls to Restful web APIs) as part of the configuration rather than built into the app itself so that I can set them during deployment (e.g. to set test urls and prod urls).
More generally I want to store text variables in config that is external to the app and can be pulled in by the app somehow.
I thought I could set some environment variables or something but Windows Store Apps can't read them it seems.
Any ideas?
You could certainly make an HTTP request from the app on startup to retrieve a configuration file, but that of course assumes connectivity which may or may not work in your scenario. For a Store-acquired app, this is really the only choice.
In your scenario, however, you'll be doing side-loading through a Powershell, correct? (This is implied in installing directly to devices.) In that case, the Powershell script is running in full trust and will have access to the file system during the process. This means that the script can easily deploy a configuration file into the app's local appdata folder, which the app then picks up when it runs. The app package should also contain a default configuration file that it copies into that appdata folder if such a file doesn't exist on startup.
The documentation for the add-appxpackage script that does the install is here: https://technet.microsoft.com/en-us/library/hh856048.aspx.
Another option you might be able to use is to build different versions of your packages for test and production deployment. It is possible to configure the build process in Visual Studio to selectively bring in different versions of a file depending on your build target (e.g. Debug or Release). I have a blog that describes this technique on http://www.kraigbrockschmidt.com/2014/02/25/differentiate-debug-release-builds-javascript/. This would allow you to package different versions of a configuration file into the package, which you'd then read from the package install location at runtime or copy to appdata if you wanted to make changes at runtime.
I mention this method for building different packages because it's something that doesn't need you to do anything other than change the build target. It accomplishes what you would do with #ifdef precompiler directives in other languages, which aren't available for JavaScript.
The Google App Engine Launcher has a nice little "Deploy" button that will push my changes to prod. However, I'd like to be able to minify/obfuscate my JavaScript before deploying.
I've read about several tools that can do this: Google Closure Compiler, Uglify.js, YUI Compressor. Of course, I could do this manually before deploying, but I'd much rather be able to have this run automatically.
Is there a way to hook into App Engine's deploy process, and run a minification/obfuscation task on my JavaScript? If not, any suggestions on other approaches?
As already mentioned minifying and obfuscating the code depends on the specific setup of your app and has to be done before deploying on App Engine.
That was one of the main reasons that I started the gae-init project. Among other things it has a custom script that combines and minifies all the static files (JS/CSS) before deploying, while when running locally keeping them as they are.
Not sure if there's a way to hook to "App Engine Launcher" but all it does is run a appcfg.py update myapp/ command where myapp/ is your app directory. You could simply create your own shell/batch file where you first minify the files and then deploy them by running the command above.
Also, take a look at Google's Pagespeed service that comes with paid App Engine projects where css/js/etc is minified automatically on Google's servers.