Subtitle: [RFC] Proposed Milestone for charva-lanterna: Compile IntelliJ IDEA 146.975 using charva-lanterna (more details below...)
Description - Missing class TableColumn
Class charvax.swing.table.TableColumn is missing. Confusingly, class JTable is present in charva-lanterna, refers to TableColumn in the doc and has some TableColumn-related code commented out - ref.
What would the accepted way of dealing with these cases in charva-lanterna be?
Stub TableColumn class returning dummy values?
Delete JTable?
Shall TableColumn be investigated on whether it is a swing class that is actually independent from the rest of swing, hence implementing charvax.swing.table.TableColumn as a very "light" class that delegates to / encapsulates javax.swing.table.TableColumn? (Maybe this approach is already used anywhere else in charva-lanterna?)
I do not have a minimal failing test case, neither I plan to spend time on fixing this in the short-medium term (hence the lack of proposal patch) - sorry for that.
Subtitle: [RFC] Proposed Milestone for charva-lanterna: Compile IntelliJ IDEA 146.975 using charva-lanterna
I propose this as a medium-term milestone for charva-lanterna on the basis that it is an application that exercises a relevant subset of awt/swing and provides a challenging milestone for charva-lanterna (imagine using IntelliJ IDEA from the command line on SSH inside a tmux session!).
I open this ticket as a result of my attempt to compile IntelliJ IDEA 146.975 using charva-lanterna. I planted a build infrastructure that enables testing compilation of IntelliJ using charva-lanterna with minimal effort.
This milestone ("Compile IntelliJ IDEA 146.975 using charva-lanterna") would spark lots of easy-to-delegate "leaf" tasks with limited supervision over - let us say - a 8-4 years timespan. The milestone could be tracked as a GitHub open _meta-_issue" - example and the current leaf tasks could be tracked as open GitHub issues with "help wanted" label - example.
It is based on tag of IntelliJ IDEA version 146.975 (just for fixing a point - I suggest to keep it fixed over the months in order to reduce effort);
It fetches android-related IntelliJ code;
It fetches lanterna jar from maven;
It builds charva-lanterna jars from git;
It replaces import java.awt. with import charva.awt. and import javax.swing. with import charvax.swing. (this is the correct way of using charva-lanterna - is it not?);
Please refer to the .travis.yml file and notice that all versions are explicited in there - in particular: the git url/commit of charva-lanterna and the maven version of lanterna.
Threats
Is IntelliJ an awt/swing-only application, or does it use any other graphical API that would hinder the feasibility of porting IntelliJ to the command line using charva-lanterna?
As a relevant amount of code needs to be written in order to make the application start (that will probably never happen), this milestone is prone to lots of classes being written potentially only as stubs or half-broken;
A mitigation for this is identifying a test approach for charva-lanterna: is there one? Is expanding the charva-demo-app the way to go? Shall an end-to-end test approach be planted e.g. simulating the terminal using e.g. minicom?
Opportunities
If the build infrastructure be changed to include charva-lanterna (and lanterna?) as source in the IntelliJ codebase (as opposed to jar libraries acting as dependencies for the IntelliJ codebase), opening IntelliJ (146.975) as a project (the codebase of IntelliJ is itself an IntelliJ project) in a recent version of IntelliJ could enable a fertile framework for enhancing charva-lanterna (e.g. does IntelliJ automatically create stubs of missing classes based on their usage?).
Subtitle: [RFC] Proposed Milestone for charva-lanterna: Compile IntelliJ IDEA 146.975 using charva-lanterna (more details below...)
Description - Missing class TableColumn
Class charvax.swing.table.TableColumn is missing. Confusingly, class JTable is present in charva-lanterna, refers to TableColumn in the doc and has some TableColumn-related code commented out - ref.
What would the accepted way of dealing with these cases in charva-lanterna be?
I do not have a minimal failing test case, neither I plan to spend time on fixing this in the short-medium term (hence the lack of proposal patch) - sorry for that.
Subtitle: [RFC] Proposed Milestone for charva-lanterna: Compile IntelliJ IDEA 146.975 using charva-lanterna
I propose this as a medium-term milestone for charva-lanterna on the basis that it is an application that exercises a relevant subset of awt/swing and provides a challenging milestone for charva-lanterna (imagine using IntelliJ IDEA from the command line on SSH inside a tmux session!).
I open this ticket as a result of my attempt to compile IntelliJ IDEA 146.975 using charva-lanterna. I planted a build infrastructure that enables testing compilation of IntelliJ using charva-lanterna with minimal effort.
This milestone ("Compile IntelliJ IDEA 146.975 using charva-lanterna") would spark lots of easy-to-delegate "leaf" tasks with limited supervision over - let us say - a 8-4 years timespan. The milestone could be tracked as a GitHub open _meta-_issue" - example and the current leaf tasks could be tracked as open GitHub issues with "help wanted" label - example.
The build infrastructure I planted can be found at https://github.com/lucafavatella/intellij-community/tree/cli-wip and integrates with Travis CI:
import java.awt.
withimport charva.awt.
andimport javax.swing.
withimport charvax.swing.
(this is the correct way of using charva-lanterna - is it not?);The result can be inspected on Travis CI e.g. from https://travis-ci.org/lucafavatella/intellij-community/jobs/120469635#L2226:
Please refer to the .travis.yml file and notice that all versions are explicited in there - in particular: the git url/commit of charva-lanterna and the maven version of lanterna.
Threats
Opportunities