Ask Reuben

Early Access Program (EAP)

What is an EAP?

Why should I participate in an EAP?

What happens if I don’t participate in an EAP?

What is expected of me in an EAP?

How do I register for EAP?

What is an EAP?

EAP is short for Early Access Program, and is where we give you the opportunity to try out and provide feedback on our next release before it is officially released and is GA (Generally Available)


What Is In The EAP

The announcement notice ( 4.00 announcement notice) has some initial details.  More can be found once you register and read the New Features and Upgrade Guide sections of the documentation, and more maybe added over the course of the EAP.


Why should I participate in an EAP?

The EAP is your opportunity to influence our future releases …

  • to ensure your application can upgrade to newer releases with minimal effort and cost to your business
  • so that new features are able to be used and provide benefits to your application straight away

What is expected of me in an EAP?

Minimal expectation is that you …

  • download the EAP packages.
  • read the Upgrade Guides and New Features sections of the documentation.
  • make any changes to your code base as noted in the Upgrade Guides.  Provide feedback if those changes are too onerous.
  • compile your application and verify that it still compiles  Provide feedback when it does not compile.
  • perform some basic testing of your application to ensure that it still runs in the important areas as expected.  Provide feedback in areas where the program no longer works like it did previously.

What we would like, and what puts you in consideration for an OLGA award at our developer conference is if you …

  • perform full QA testing of your application.  Provide feedback in areas where the program no longer works like it did previously.
  • fully evaluate and provide feedback on any features we have introduced.
  • monitor other customers issues and provide feedback on their issues.

Ideally if we do the GA release on 30th September, then you should be in a position to do a release of your product on 1st October using this new release and incorporating new functionality we have introduced.


How do I register for EAP?

It is a simple registration process at  https://4js.com/download/eap/?


What happens if I don’t participate in an EAP?

The biggest danger is that we change something that breaks your code or changes your application on some way. We try not to do this, but it can happen.  During the EAP we have more options available to us to resolve any issue.  If you don’t participate in the EAP and only discover an issue after the release has occurred, then you may be in a position where you have to wait until a maintenance release for the issue to be resolved, or we may decide that this is the future path and you have to amend your code.

Also if we add any new feature, when you go to use it at a later date, you may find that you are restricted in its use because it is missing a feature that is important to you.

It is much more difficult for us to make change after a release has occurred.  With any subsequent maintenance release we …

  • don’t want to force developers to edit 4gl code in order to install a maintenance release
  • don’t want to force developers to compile 4gl code as part of installing a maintenance release
  • don’t want to force concurrent installation of two or more of our products as part of a maintenance release

The best time for us to make changes is in the EAP period BEFORE a product is released to GA..

An example I like to give is the two base.StringTokenizer methods.  The feedback about what happens if the delimiter is escaped or the case of empty tokens was received after base.StringTokenizer.create was released.  We couldn’t change this method to have two extra parameters or else that would break any code that used this as soon as it was released, and so we had to create a new method base.StringTokenizer.createExt to handle these cases, when perhaps the optimal solution would have been to have just the one method.


I intend to skip a release, should I participate in the EAP?

The decision to participate is always upto you and you need to weigh up the positives and negatives of participating, and just what your level of commitment is.

I will give you this example, in recent months I have seen customers upgrading from 2.50 to 3.20 i.e skipping 3.00, 3.10.  They have encountered issues where upon analysis we discover that some behaviour was changed between 2.50 and 3.00, and they are the first to report a negative impact of this change.   If they had participated in the 3.00 EAP 6 years ago  we could have take their feedback into account and made adjustments accordingly, but now 6 years later we have to consider that users of 3.00, 3.10, 3.20 are accepting of the change in behaviour.


Is there any particular reason I should look at this EAP (4.00)?

This is the first release with the user interface standardised on Universal RenderingNative Rendering is no longer shipped inside the front-end clients.  If you have not taken the opportunity to review Universal Rendering in any of the 3.xx releases then this is your last chance.


Why is there not a package for my O/S  in the EAP?

We focus on delivering Linux, Windows, OSX packages as we expect most senior developers to be using Genero Studio on these platforms.  Packages maybe available for other ports upon request.  When preparing releases more frequently as we do during the EAP, it is less time consuming to only produce 3 packages instead of  10+.


What documentation is there during an EAP?

A link will be provided as part of the registration and/or initial downloads.

The documentation is under development during the EAP period just as much as the underlying product is.  This is also the opportunity to make sure the documentation is correct.

The important sections to find and read in each set of documentation are as always …

  • New Features – This is the fun section to read with the new syntax that you can experiment with and provide feedback on
  • Upgrade Guide – This is the must read section which details what if any code changes you may be required to make as part of the upgrade process.

Sample  / Demo Programs

These can be found in the normal places, that is FGLDIR/demo, and Tutorials and Samples in the Genero Studio Welcome Page.  Some may also be made available via our GitHub repositories over the course of the EAP.


What is Feature of the Day?

During the EAP process, I twill do some posts about the various new features, these are labelled Feature of the Day (FOTD).   These posts aim to both advertise and show possible uses in order to motivate participants to look at a new feature of change,  and also to start discussions about the various features and changes.  These posts don’t aim to tutor you in the use of a new feature, the documentation needs to stand on its own two feet in that regard.


How do I provide feedback?

As part of the EAP there  is a forum / mailing list, further details about this will be provided during the EAP process.

Please get in the habit of reading about the other issues as they are raised, and of periodically reviewing the historical discussions.

Provide similar information as you would with  a support case.  That is …

  • versions involved – please check you have the latest EAP version
  • operating systems
  • logs
  • MCVE

I would encourage you to get involved in other discussions.    Even a simple +1 just to let us know that you agree with another developer, and so that they don’t feel they are in a minority of one.


Any Other Tips?

  • If you have skipped the latest version(s), don’t forget to read the New Features and Upgrade Guide for the versions you have skipped, and bear those changes in mind when you raise an issue.
  • Don’t forget to do some tests as an end-user.  In development environments you may do things like setting -D -a when starting the GDC, using –development mode in the GAS, disabling stored settings.  Make sure you test without these things at some stage so you get the end-user experience.

Final Point

There are many nationalities participating and many for whom English is not the first language.  if in doubt, provide a minimal reproducible example, log, screenshot, or recording to illustrate the issue and/or difference with an earlier version.  One of my favourite sayings is

Nothing spins a geeks propeller like an isolated reproducible example.

… this means if you show a developer a small example that consistently shows an issue, that will get their attention.  As they go to sleep at night they will be thinking why does this line of code do this in version A and do something else in version B.