Opened 7 years ago

Closed 7 years ago

#55211 closed defect (fixed)

qscintilla and qscintilla2 are substantially the same software

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: michaelld (Michael Dickens)
Port: qscintilla, qscintilla2

Description

It seems that we have two ports that do the same thing:

$ port info qscintilla qscintilla2
qscintilla @2.10.1 (devel)
Variants:             debug, universal

Description:          QScintilla is a port to Qt of Neil Hodgson's Scintilla
                      C++ editor control. As well as features found in
                      standard text editing components, QScintilla includes
                      features especially useful when editing and debugging
                      source code. These include support for syntax styling,
                      error indicators, code completion and call tips. The
                      selection margin can contain markers like those used
                      in debuggers to indicate breakpoints and the current
                      line. Styling choices are more open than with many
                      editors, allowing the use of proportional fonts, bold
                      and italics, multiple foreground and background
                      colours and multiple fonts. See the py*-qscintilla
                      port to install python bindings.
Homepage:             http://www.riverbankcomputing.com/software/qscintilla/

Build Dependencies:   pkgconfig
Library Dependencies: qt4-mac
Platforms:            darwin
License:              {GPL-2 GPL-3 OpenSSLException}
Maintainers:          Email: michaelld@macports.org, GitHub: michaelld
                      Policy: openmaintainer
--
qscintilla2 @2.10 (devel)
Sub-ports:            qscintilla2-designer, py27-qscintilla2,
                      py34-qscintilla2, py35-qscintilla2, py36-qscintilla2
Variants:             debug, universal

Description:          QScintilla is a port to Qt of Neil Hodgson's Scintilla
                      C++ editor control. As well as features found in
                      standard text editing components, QScintilla includes
                      features especially useful when editing and debugging
                      source code. These include support for syntax styling,
                      error indicators, code completion and call tips. The
                      selection margin can contain markers like those used
                      in debuggers to indicate breakpoints and the current
                      line. Styling choices are more open than with many
                      editors, allowing the use of proportional fonts, bold
                      and italics, multiple foreground and background
                      colours and multiple fonts.
Homepage:             http://www.riverbankcomputing.com/software/qscintilla/

Build Dependencies:   pkgconfig
Library Dependencies: qt5-qtbase, qt5-qtmacextras
Platforms:            darwin
License:              GPL-3
Maintainers:          Email: mcalhoun@macports.org
                      Policy: openmaintainer
$ 

The differences seem to be:

  • qscintilla2 is outdated
  • qscintilla2 uses qt5 while qscintilla uses qt4-mac
  • qscintilla2 has subports for the python language bindings and designer, while qscintilla has separate ports for the language bindings and I don't know what's going on with designer

Can this be sorted out so that we're left with only a single copy of these ports? Whatever you decide, be sure to replaced_by so that users who have the one port will be upgraded to the other, and update dependencies in other ports and revbump them.

Change History (9)

comment:1 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

The naming convention could certainly be improved, and there is code duplication between the ports, but I would respectfully disagree with the characterization that the ports "do the same thing."
For example, qscintilla installs libqscintilla2_qt4.dylib while qscintilla2 installs libqscintilla2_qt5.dylib.
Both qscintilla and qscintilla2 should be able to be installed at the same time.

If by "single copy of these ports," you mean have them be in the same Portfile, then yes, that could fairly easily be done.
If "single copy" means just one Qscintilla, I would argue that such a move is unnecessary.
qscintilla provides functionality for Qt4 while qscintilla2 provide functionality for Qt5.

Again, the naming of the ports and/or the documentation in the Portfile could certainly be improved to reflect the different responsibilities.

comment:2 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

Ok, I assumed qscintilla had been created at version 1.x, qscintilla2 had later been created at version 2.x, and then sometime later qscintilla had been updated to version 2.x without realizing that qscintilla2 already existed. However I see now that qscintilla was originally created at version 2.3.2, which makes the subsequent creation of qscintilla2 years later even more baffling.

If the intention is to have ports for qscintilla 2 with qt 4 and ports for qscintilla 2 for qt 5, that's fine, but the port names should be fixed to convey that, they should probably be made more similar, and probably both be maintained by the same maintainer(s).

comment:3 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Replying to ryandesign:

If the intention is to have ports for qscintilla 2 with qt 4 and ports for qscintilla 2 for qt 5, that's fine, but the port names should be fixed to convey that, they should probably be made more similar, and probably both be maintained by the same maintainer(s).

Renaming should not be too difficult as neither port has a large number of dependents.

  • For maximum clarity, we could use
    • qscintilla-qt4
    • qscintilla-qt5
  • For minimum disruption, we could use
    • qscintilla
    • qscintilla-qt5

Does anyone have strong feelings one way or another?

Making them more similar is a good idea.
It might prove a little difficult in practice.
Qt4 and Qt5 each seem to have their own particular quirks.

comment:4 Changed 7 years ago by mf2k (Frank Schima)

I think we should strive for clarity. The first approach sounds best to me.

comment:5 in reply to:  3 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to MarcusCalhoun-Lopez:

  • For maximum clarity, we could use
    • qscintilla-qt4
    • qscintilla-qt5

This was going to be my first suggestion.

Making them more similar is a good idea.
It might prove a little difficult in practice.
Qt4 and Qt5 each seem to have their own particular quirks.

I understand Qt4 and Qt5 are different. But there should not be unnecessary differences beyond that. They might even be combined into a single Portfile, with subports, to ensure minimal drift. You need only diff the two portfiles against each other to see how many unnecessary differences currently exist.

comment:6 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: MarcusCalhoun-Lopez removed
Owner: set to MarcusCalhoun-Lopez
Status: newaccepted

comment:7 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

In cb2b9da15cf5a1162720e40366288cf13ae68b56/macports-ports:

py-qscintilla: use cache file instead of patching

Part of an attempt to maintain consistency with Qt5 qscintilla.
See #55211

No revbump since final build will be the same.

comment:8 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

In edc8840571cdaf2cc780c26972379b3f00594a19/macports-ports:

py-qscintilla: explicitly set Qt4 values

Part of an attempt to maintain consistency with Qt5 qscintilla.
See #55211

No revbump since final build will be the same.

comment:9 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Resolution: fixed
Status: acceptedclosed

In cffde0404317a0c9e59fdccab13dd37370ab9aed/macports-ports:

append Qt version to qscintilla port names

Revbump all dependents.
Fixes #55211

Note: See TracTickets for help on using tickets.