Rush • A new and improved way of building extensions

You can use an online dev environments like GitHub Codespaces, Replit, or Gitpod, and install and use Rush on it all from your mobile browser. Although, do note that features like autocomplete, code navigation, etc. may not work there like in IntelliJ IDEA.

4 Likes

I don't know how to do this :sweat_smile:

I mean to say that I don't know how to install Rush on android, I need someone's guidance regarding that

@shreyash I have one more question that is it possible to install rush without PowerShell

How can i create an extension with two or more extension inside of it using rush? For example, CustomWebView extension by @vknow360 & ScrollHandler by @colintree .

I tried creating a new class inside same package and that new class with super class AndroidNonVisibleComponent but i am getting this error.

Annotation@SimpleProperty can't be used on element "MyFunc". It can only be used on members of class "com.oseamiya.networkextension.NetworkExtension".
2 Likes

Rush doesn't yet support multi-component extensions. This feature was planned and almost ready for v2.0, but since I've halted the development of Rush for some time, it won't be available to use anytime soon. I'd rather suggest you use the extension template for such extensions until then.

That being said, if you're feeling adventurous you may try building Rush locally by checking out the dev branch of the annotation processor repo and the 2.0 branch of the rush-cli repo that adds support for multi-component extensions (I've previously called them sibling extensions because... why not?). There have been many breaking changes in these branches, so yeah, stuff might not work as expected.

Links to relevant commits:

2 Likes

Recently, I've published a new version of my baserow extension compiled with help of rush. Found out that the extension is running well in the companion but when the user builds an application using the extension, it shows the following error.

App Inventor is unable to compile this project.
The compiler error output was
________Preparing application icon
________Creating animation xml
________Creating style xml
________Creating provider_path xml
________Creating network_security_config xml
________Generating adaptive icon file
________Generating round adaptive icon file
________Generating adaptive icon background file
________Generating manifest file
________Attaching native libraries
________Attaching Android Archive (AAR) libraries
________Attaching component assets
________Invoking AAPT
AAPT time: 1.258 seconds
________Compiling source files
(compiling appinventor/ai_hsiajwo/NumberToWord/Screen1.yail to appinventor.ai_hsiajwo.NumberToWord.Screen1)
(compiling /tmp/runtime8188517049636975654.scm to com.google.youngandroid.runtime)
Kawa compile time: 49.926 seconds
________Invoking DX
DX time: 15.811000 seconds
YAIL compiler - DX execution failed.
.


Then I used the extension template and compiled the extension. App is successfully built after using extension compiled from extension template.

Now, I am unable to figure out why this error is coming when using rush.

I am using rush's version 1.2.5.

Source Code : https://github.com/oseamiya/Baserow
Extension which was not compiling as app :
com.oseamiya.baserow.aix (49.9 KB)

I found a post by Taifun to deal with DX execution failed errors. Maybe this can help you.

EDIT: Woops, this is for App Inventor sources, not Rush. I mistakened your question.

1 Like

Yes I can remember this too, and he had told that if we'll use more than 1 extension of Helios it will throw that error

Can you build an app containing this extension on your local instance of AI2 and paste the build server's log output here?

[Feature Suggestion] for next version of Rush:

For displaying in the ? click box in designer:

authors

and add another property:

licence
so developers can add a link to their chosen licence e.g. Creative Commons / MIT

authors and licence should display in the same way that Extension Version: and Date Built: display

1 Like

Rush already supports the license (spelt with s instead of c) property. You can either pass it a local license file or URL. Extensions with a license show a "view license" button under the description:

image

1 Like

OK, where do we input that information?

In rush.yml:

license: url/filename

Note the spelling though, licence won't work.

:slight_smile:

Thank you

1 Like

Any other undocumented hidden treasures like this ? The MIT Designer Component has quite a few...

Rush supports everything that the DesignerComponent annotation supports. And everything has been documented here: Metadata File (rush.yml) · shreyashsaitwal/rush-cli Wiki (github.com)

1 Like

Using Rush, how do you add another java file, which is a continuation of the first page?

What do you mean by a continuation of the first page?

Say I have a great big array of strings

List < String> countryFiles = Arrays.asList("ad.png","ae.png","af.png","ag.png","ai.png" ----"zw.png");

which means many scrolls of the ide to get to the next section. Have this in a separate java file to call on from the first.