]> granicus.if.org Git - graphviz/log
graphviz
3 years agoremove some unnecessary bracketing in the HTML lexer
Matthew Fernandez [Sat, 26 Dec 2020 01:20:13 +0000 (17:20 -0800)]
remove some unnecessary bracketing in the HTML lexer

3 years agoremove micro-optimizations in HTML lexer
Matthew Fernandez [Sat, 26 Dec 2020 01:16:16 +0000 (17:16 -0800)]
remove micro-optimizations in HTML lexer

This code was attempting to avoid an expensive call to strcasecmp when the first
byte already indicates a mismatch. Modern compilers can perform this
optimization themselves, including inlining strcasecmp and unrolling and
vectorizing its loop. Manually comparing the first byte actually impedes the
compiler because it's harder for it to see your intent. Related to #1913.

3 years agofix incorrect parsing of ALIGN attribute in a <BR> HTML tag
Matthew Fernandez [Sat, 26 Dec 2020 21:26:00 +0000 (13:26 -0800)]
fix incorrect parsing of ALIGN attribute in a <BR> HTML tag

The logical operators here were incorrect. Rather than flipping them to the
correct operators, we undo this micro-optimization and write this code in a more
obvious manner. Fixes #1913.

3 years agotest case for #1913
Matthew Fernandez [Sat, 26 Dec 2020 21:20:59 +0000 (13:20 -0800)]
test case for #1913

3 years agoremove a Vim modeline
Matthew Fernandez [Sat, 26 Dec 2020 01:12:34 +0000 (17:12 -0800)]
remove a Vim modeline

This is only relevant for Vim users that have modeline support enabled and adds
clutter to the file.

3 years agouse libc limit constants instead of defining our own
Matthew Fernandez [Sat, 26 Dec 2020 01:11:12 +0000 (17:11 -0800)]
use libc limit constants instead of defining our own

These are available in the C standard library even prior to C89. This change has
no effect on functionality, as the replaced constants have identical values.

3 years agoremove a legacy RCS tag
Matthew Fernandez [Sat, 26 Dec 2020 01:09:20 +0000 (17:09 -0800)]
remove a legacy RCS tag

Related to #1798.

3 years agoMerge branch 'smattr/E2228C5B-49AF-464B-9869-7F2D29F459D9' into 'master'
Matthew Fernandez [Sat, 23 Jan 2021 21:21:50 +0000 (21:21 +0000)]
Merge branch 'smattr/E2228C5B-49AF-464B-9869-7F2D29F459D9' into 'master'

remove the use of NIL and friends

See merge request graphviz/graphviz!1692

3 years agoremove the use of NIL and friends
Matthew Fernandez [Fri, 18 Dec 2020 01:53:07 +0000 (17:53 -0800)]
remove the use of NIL and friends

NULL is more concise and more widely understood than the Graphviz-specific macro
NIL. We leave the definitions of NIL in case others are using these through the
public API.

3 years agoMerge branch 'smattr/3fd88959-c0fa-43fa-b8d0-1a39ff9cfac4' into 'master'
Matthew Fernandez [Sat, 23 Jan 2021 20:26:52 +0000 (20:26 +0000)]
Merge branch 'smattr/3fd88959-c0fa-43fa-b8d0-1a39ff9cfac4' into 'master'

some clean up in lib/gvpr/compile.c

See merge request graphviz/graphviz!1685

3 years agoremove some unnecessary bracketing
Matthew Fernandez [Wed, 25 Nov 2020 01:21:53 +0000 (17:21 -0800)]
remove some unnecessary bracketing

3 years agoremove some unnecessary casts
Matthew Fernandez [Wed, 25 Nov 2020 01:21:03 +0000 (17:21 -0800)]
remove some unnecessary casts

These coercions happen implicitly.

3 years agoremove a Vim modeline comment
Matthew Fernandez [Wed, 25 Nov 2020 01:19:59 +0000 (17:19 -0800)]
remove a Vim modeline comment

3 years agoturn ISEDGE macro into a function
Matthew Fernandez [Wed, 25 Nov 2020 01:07:33 +0000 (17:07 -0800)]
turn ISEDGE macro into a function

There's no need for this to be a macro or play bitwise tricks.

3 years agofix a comment typo
Matthew Fernandez [Wed, 25 Nov 2020 01:07:16 +0000 (17:07 -0800)]
fix a comment typo

3 years agoremove a RCS marker
Matthew Fernandez [Wed, 25 Nov 2020 01:06:31 +0000 (17:06 -0800)]
remove a RCS marker

Related to #1798.

3 years agoMerge branch 'smattr/36c9e35e-ec5c-4cf3-add5-51e394840fb2' into 'master'
Matthew Fernandez [Sat, 23 Jan 2021 19:55:07 +0000 (19:55 +0000)]
Merge branch 'smattr/36c9e35e-ec5c-4cf3-add5-51e394840fb2' into 'master'

minor cleanups

See merge request graphviz/graphviz!1683

3 years agoremove an dead store
Matthew Fernandez [Sun, 22 Nov 2020 06:02:54 +0000 (22:02 -0800)]
remove an dead store

This variable, `el`, is immediately reassigned in the following loop.

3 years agoremove some use of the NIL macro
Matthew Fernandez [Sun, 22 Nov 2020 06:01:33 +0000 (22:01 -0800)]
remove some use of the NIL macro

3 years agoremove an unnecessary intermediate buffer
Matthew Fernandez [Sun, 22 Nov 2020 05:57:26 +0000 (21:57 -0800)]
remove an unnecessary intermediate buffer

3 years agoremove commented out code
Matthew Fernandez [Sun, 22 Nov 2020 05:56:54 +0000 (21:56 -0800)]
remove commented out code

3 years agoremove unused macros
Matthew Fernandez [Sun, 22 Nov 2020 05:56:32 +0000 (21:56 -0800)]
remove unused macros

3 years agoremove micro-optimization in streq()
Matthew Fernandez [Sun, 22 Nov 2020 05:55:38 +0000 (21:55 -0800)]
remove micro-optimization in streq()

Modern compilers can already do tricks like this as they know strcmp() through
__builtin_strcmp().

3 years agoremove some unnecessary bracketing
Matthew Fernandez [Sun, 22 Nov 2020 05:51:02 +0000 (21:51 -0800)]
remove some unnecessary bracketing

3 years agoremove some unnecessary casts
Matthew Fernandez [Sun, 22 Nov 2020 05:33:45 +0000 (21:33 -0800)]
remove some unnecessary casts

These pointers implicitly coerce.

3 years agoMerge branch 'smattr/62f363ec-36df-4415-9029-91da24a61289' into 'master'
Matthew Fernandez [Sat, 23 Jan 2021 19:23:32 +0000 (19:23 +0000)]
Merge branch 'smattr/62f363ec-36df-4415-9029-91da24a61289' into 'master'

stop disabling assertions in libcgraph when DEBUG is undefined

See merge request graphviz/graphviz!1682

3 years agostop disabling assertions in libcgraph when DEBUG is undefined
Matthew Fernandez [Sat, 21 Nov 2020 23:22:29 +0000 (15:22 -0800)]
stop disabling assertions in libcgraph when DEBUG is undefined

This is counterintuitive to developers and moreover assertions are already
controllable via NDEBUG.

3 years agoMerge branch 'smattr/3e8082b9-bc17-4b27-968e-caa712091d2b' into 'master'
Matthew Fernandez [Sat, 23 Jan 2021 18:51:16 +0000 (18:51 +0000)]
Merge branch 'smattr/3e8082b9-bc17-4b27-968e-caa712091d2b' into 'master'

more VPSC clean up

See merge request graphviz/graphviz!1677

3 years agoVPSC: uniformly treat objects as structs that need to be exposed to C
Matthew Fernandez [Sat, 21 Nov 2020 16:42:21 +0000 (08:42 -0800)]
VPSC: uniformly treat objects as structs that need to be exposed to C

The keywords "class" and "struct" are synonyms in C++, except for changing the
default visibility of declarations within the object. By using struct for
anything that needs to be declared in the C API, we can avoid some #ifdef mess
in this header.

3 years agoremove a manual allocation
Matthew Fernandez [Sat, 21 Nov 2020 02:04:10 +0000 (18:04 -0800)]
remove a manual allocation

3 years agoremove some useless code
Matthew Fernandez [Sat, 21 Nov 2020 02:03:48 +0000 (18:03 -0800)]
remove some useless code

3 years agouse empty() to check size() against 0 in VPSC
Matthew Fernandez [Sat, 21 Nov 2020 01:20:28 +0000 (17:20 -0800)]
use empty() to check size() against 0 in VPSC

This is significantly faster for large vectors.

3 years agoremove unnecessary extern C
Matthew Fernandez [Sat, 21 Nov 2020 01:13:34 +0000 (17:13 -0800)]
remove unnecessary extern C

This file #includes csolve_VPSC.h, so the compiler has already seen prototypes
for these functions marked extern C.

3 years agoremove some unused using declarations
Matthew Fernandez [Sat, 21 Nov 2020 01:13:22 +0000 (17:13 -0800)]
remove some unused using declarations

3 years agoremove unnecessary explicit void in VPSC
Matthew Fernandez [Sat, 21 Nov 2020 01:12:50 +0000 (17:12 -0800)]
remove unnecessary explicit void in VPSC

Unlike in C, prototypes with no parameter list are not ambiguous in C++.

3 years agoremove Vim modeline comments in VPSC
Matthew Fernandez [Sat, 21 Nov 2020 01:11:54 +0000 (17:11 -0800)]
remove Vim modeline comments in VPSC

These have no effect for any developer not using Vim or with modeline disabled.
A better way to achieve this now is clang-format.

3 years agouse #pragma once guards in VPSC
Matthew Fernandez [Sat, 21 Nov 2020 01:09:52 +0000 (17:09 -0800)]
use #pragma once guards in VPSC

These are supported by all recent compilers and are less error prone than old
style header guards.

3 years agoupdate Adaptagrams URLs
Matthew Fernandez [Sat, 21 Nov 2020 01:08:24 +0000 (17:08 -0800)]
update Adaptagrams URLs

It is debatable whether this is useful as the upstream project seems to be dead.

3 years agoremove VPSC RCS markers
Matthew Fernandez [Sat, 21 Nov 2020 01:05:36 +0000 (17:05 -0800)]
remove VPSC RCS markers

These RCS version control markers no longer serve a purpose, now that Graphviz
is hosted in Git. Related to #1798.

3 years agoMerge branch 'smattr/A7F35B6D-9CED-4C89-B438-AE0CC4ECD4FA' into 'master'
Matthew Fernandez [Sat, 23 Jan 2021 18:18:53 +0000 (18:18 +0000)]
Merge branch 'smattr/A7F35B6D-9CED-4C89-B438-AE0CC4ECD4FA' into 'master'

remove some extraneous lib/vpsc code

See merge request graphviz/graphviz!1675

3 years agoremove an unnecessary destructor
Matthew Fernandez [Mon, 16 Nov 2020 00:32:27 +0000 (16:32 -0800)]
remove an unnecessary destructor

These vector members of the class are automatically cleared when an object of
this type is destructed.

3 years agoremove unused BadIterator exception
Matthew Fernandez [Mon, 16 Nov 2020 00:21:50 +0000 (16:21 -0800)]
remove unused BadIterator exception

3 years agoremove unused Overflow exception
Matthew Fernandez [Mon, 16 Nov 2020 00:20:58 +0000 (16:20 -0800)]
remove unused Overflow exception

If there is a need of this in future, std::out_of_range is more appropriate.

3 years agoremove unused OutOfMemory exception
Matthew Fernandez [Mon, 16 Nov 2020 00:19:39 +0000 (16:19 -0800)]
remove unused OutOfMemory exception

If there is a need of something like this in future, std::bad_alloc is more
appropriate.

3 years agoremove undefined class
Matthew Fernandez [Mon, 16 Nov 2020 00:18:43 +0000 (16:18 -0800)]
remove undefined class

Thankfully it seems no one ever implemented this declared class which sounds,
well, stupid.

3 years agoMerge branch 'smattr/c8469035-634e-4199-bca6-86971c094ed8' into 'master'
Matthew Fernandez [Sat, 23 Jan 2021 05:06:59 +0000 (05:06 +0000)]
Merge branch 'smattr/c8469035-634e-4199-bca6-86971c094ed8' into 'master'

remove another setjmp/longjmp use

See merge request graphviz/graphviz!1671

3 years agoabbreviate some comparisons against boolean literals
Matthew Fernandez [Sat, 14 Nov 2020 20:45:29 +0000 (12:45 -0800)]
abbreviate some comparisons against boolean literals

3 years agoremove unnecessary open coding of NULL
Matthew Fernandez [Sat, 14 Nov 2020 20:37:21 +0000 (12:37 -0800)]
remove unnecessary open coding of NULL

3 years agoremove some unnecessary bracketing
Matthew Fernandez [Sat, 14 Nov 2020 20:36:42 +0000 (12:36 -0800)]
remove some unnecessary bracketing

3 years agoremove an unnecessary prototype
Matthew Fernandez [Sat, 14 Nov 2020 20:30:42 +0000 (12:30 -0800)]
remove an unnecessary prototype

3 years agoremove unused INCIDENT macro
Matthew Fernandez [Sat, 14 Nov 2020 20:28:58 +0000 (12:28 -0800)]
remove unused INCIDENT macro

3 years agoremove a now-unused jump buffer
Matthew Fernandez [Sat, 14 Nov 2020 20:25:45 +0000 (12:25 -0800)]
remove a now-unused jump buffer

Related to #1801.

3 years agoremove use of longjmp() in update()
Matthew Fernandez [Sat, 14 Nov 2020 20:21:28 +0000 (12:21 -0800)]
remove use of longjmp() in update()

Like the change to add_tree_edge(), this also fixes some resource leakage that
occurred in this error path. Now the tree list in rank2 is correctly cleaned up
on error. Related to #1801.

3 years agoanticipate a non-zero return value from update()
Matthew Fernandez [Sat, 14 Nov 2020 20:18:07 +0000 (12:18 -0800)]
anticipate a non-zero return value from update()

Related to #1801.

3 years agoadd a return value to update()
Matthew Fernandez [Sat, 14 Nov 2020 20:10:57 +0000 (12:10 -0800)]
add a return value to update()

Related to #1801.

3 years agoremove use of longjmp() in add_tree_edge()
Matthew Fernandez [Sat, 14 Nov 2020 20:04:38 +0000 (12:04 -0800)]
remove use of longjmp() in add_tree_edge()

This also fixes some resource leaks that occurred in this path. The longjmp()
would jump over some intermediate allocations that had been made, whereas we now
return back through the callers, cleaning up resources as we go. Related to
#1801.

3 years agoanticipate add_tree_edge() returning non-zero
Matthew Fernandez [Sat, 14 Nov 2020 20:00:49 +0000 (12:00 -0800)]
anticipate add_tree_edge() returning non-zero

Related to #1801.

3 years agoadd a return value to add_tree_edge()
Matthew Fernandez [Sat, 14 Nov 2020 19:55:15 +0000 (11:55 -0800)]
add a return value to add_tree_edge()

Related to #1801.

3 years agoanticipate merge_trees() returning NULL to indicate failure
Matthew Fernandez [Sat, 14 Nov 2020 19:54:40 +0000 (11:54 -0800)]
anticipate merge_trees() returning NULL to indicate failure

Related to #1801.

3 years agoanticipate tight_subtree_search() returning a negative value as error
Matthew Fernandez [Sat, 14 Nov 2020 19:49:12 +0000 (11:49 -0800)]
anticipate tight_subtree_search() returning a negative value as error

Related to #1801.

3 years agoanticipate find_tight_subtree() returning NULL
Matthew Fernandez [Sat, 14 Nov 2020 19:44:21 +0000 (11:44 -0800)]
anticipate find_tight_subtree() returning NULL

Related to #1801.

3 years agoanticipate return codes from feasible_tree other than 0 and 1
Matthew Fernandez [Sat, 14 Nov 2020 19:36:10 +0000 (11:36 -0800)]
anticipate return codes from feasible_tree other than 0 and 1

Related to #1801.

3 years agoinclude advice to disable assertions in a profiling build
Matthew Fernandez [Sat, 14 Nov 2020 19:07:37 +0000 (11:07 -0800)]
include advice to disable assertions in a profiling build

Something I overlooked in bfd08ce02f62e2c7700f71e36afa5c771062e842.

3 years agoMerge branch 'smattr/4b9b767b-5a9a-44d6-9ea4-a434951fa7bf' into 'master'
Matthew Fernandez [Sat, 23 Jan 2021 04:34:36 +0000 (04:34 +0000)]
Merge branch 'smattr/4b9b767b-5a9a-44d6-9ea4-a434951fa7bf' into 'master'

fix: drop Qt4 qmake support

Closes #1862

See merge request graphviz/graphviz!1670

3 years agofix: drop Qt4 qmake support
Matthew Fernandez [Sat, 14 Nov 2020 02:19:37 +0000 (18:19 -0800)]
fix: drop Qt4 qmake support

It looks to me as if cdc5efaf40d94b1020b650d654f94ebf0a856c62 attempted to
consolidate Qt5 support but actually erroneously re-enabled Qt4 qmake support.
This re-enabled qmake doesn't work because it produces a Makefile designed to
work with Qt4, while the CFLAGS and LDFLAGS set by PKG_CHECK_MODULES are all
based on Qt5 library names.

The outcome of this is that building on a Linux machine with libqt5 and
libqt4-dev installed but *not* libqt5-dev (a legal configuration) causes
Graphviz compilation to fail when processing GVEdit #includes it cannot find.

The fix here is to simply remove support for Qt4's qmake because Qt4 is
deprecated [0] and force the build system to find Qt5's qmake. Closes #1862.

  [0]: https://www.qt.io/blog/2014/11/27/qt-4-8-x-support-to-be-extended-for-another-year

3 years agoMerge branch 'smattr/D4AF680D-21E8-413F-9F38-CF85B7818E6D' into 'master'
Matthew Fernandez [Sat, 23 Jan 2021 03:48:18 +0000 (03:48 +0000)]
Merge branch 'smattr/D4AF680D-21E8-413F-9F38-CF85B7818E6D' into 'master'

remove some unused files

See merge request graphviz/graphviz!1668

3 years agoremove unused typegraph script
Matthew Fernandez [Fri, 13 Nov 2020 01:10:58 +0000 (17:10 -0800)]
remove unused typegraph script

3 years agoremove unused Makeargs
Matthew Fernandez [Fri, 13 Nov 2020 01:07:36 +0000 (17:07 -0800)]
remove unused Makeargs

3 years agoMerge branch 'remve-unused-Agglomerative_Ink_Bundling_aggressive_establish' into...
Matthew Fernandez [Sat, 23 Jan 2021 03:04:24 +0000 (03:04 +0000)]
Merge branch 'remve-unused-Agglomerative_Ink_Bundling_aggressive_establish' into 'master'

Remove unused Agglomerative_Ink_Bundling_aggressive_establish

See merge request graphviz/graphviz!1667

3 years agoMerge branch 'smattr/C3CD4BF2-D5D6-4E62-A4BC-96C3E6271116' into 'master'
Matthew Fernandez [Sat, 23 Jan 2021 03:01:26 +0000 (03:01 +0000)]
Merge branch 'smattr/C3CD4BF2-D5D6-4E62-A4BC-96C3E6271116' into 'master'

remove Tito metadata

See merge request graphviz/graphviz!1666

3 years agoremove Tito metadata
Matthew Fernandez [Wed, 11 Nov 2020 15:44:41 +0000 (07:44 -0800)]
remove Tito metadata

Tito is a tool for managing RPM-based projects [0]. As far as I am aware,
we no longer use this.

  [0]: https://github.com/rpm-software-management/tito

3 years agoMerge branch 'smattr/2d31215e-d6d1-4ac9-9f12-03a74e2d3351' into 'master'
Matthew Fernandez [Sat, 23 Jan 2021 02:29:00 +0000 (02:29 +0000)]
Merge branch 'smattr/2d31215e-d6d1-4ac9-9f12-03a74e2d3351' into 'master'

fix memory leak when making labels

See merge request graphviz/graphviz!1665

3 years agoremove unnecessary casts of make_label() argument
Matthew Fernandez [Tue, 10 Nov 2020 04:19:45 +0000 (20:19 -0800)]
remove unnecessary casts of make_label() argument

These pointers implicitly coerce to void*.

3 years agofix memory leak in label construction
Matthew Fernandez [Tue, 10 Nov 2020 04:15:00 +0000 (20:15 -0800)]
fix memory leak in label construction

make_label() internally strdups its input, so this extra allocation was simply
being lost. This was observable using an ASan-instrumented build and the command
`dot -Tsvg -o /dev/null ./rtest/share/alf.gv`:

  Direct leak of 121 byte(s) in 12 object(s) allocated from:
    #0 0x7fd2541bf810 in strdup (/lib/x86_64-linux-gnu/libasan.so.5+0x3a810)
    #1 0x7fd25404a955 in parse_reclbl /tmp/tmp.bXYbsH93VJ/graphviz/lib/common/shapes.c:3314
    #2 0x7fd25404a5eb in parse_reclbl /tmp/tmp.bXYbsH93VJ/graphviz/lib/common/shapes.c:3292
    #3 0x7fd25404ca5f in record_init /tmp/tmp.bXYbsH93VJ/graphviz/lib/common/shapes.c:3556
    #4 0x7fd25405966a in common_init_node /tmp/tmp.bXYbsH93VJ/graphviz/lib/common/utils.c:658
    #5 0x7fd24fc78a01 in dot_init_node /tmp/tmp.bXYbsH93VJ/graphviz/lib/dotgen/dotinit.c:40
    #6 0x7fd24fc79522 in dot_init_node_edge /tmp/tmp.bXYbsH93VJ/graphviz/lib/dotgen/dotinit.c:81
    #7 0x7fd24fc7ad61 in dotLayout /tmp/tmp.bXYbsH93VJ/graphviz/lib/dotgen/dotinit.c:295
    #8 0x7fd24fc7c4b9 in doDot /tmp/tmp.bXYbsH93VJ/graphviz/lib/dotgen/dotinit.c:450
    #9 0x7fd24fc7ca94 in dot_layout /tmp/tmp.bXYbsH93VJ/graphviz/lib/dotgen/dotinit.c:496
    #10 0x7fd253f7673d in gvLayoutJobs /tmp/tmp.bXYbsH93VJ/graphviz/lib/gvc/gvlayout.c:85
    #11 0x55a9961b3960 in main /tmp/tmp.bXYbsH93VJ/graphviz/cmd/dot/dot.c:132
    #12 0x7fd253d2309a in __libc_start_main ../csu/libc-start.c:308

  Direct leak of 118 byte(s) in 19 object(s) allocated from:
    #0 0x7fd2541bf810 in strdup (/lib/x86_64-linux-gnu/libasan.so.5+0x3a810)
    #1 0x7fd25404a955 in parse_reclbl /tmp/tmp.bXYbsH93VJ/graphviz/lib/common/shapes.c:3314
    #2 0x7fd25404ca5f in record_init /tmp/tmp.bXYbsH93VJ/graphviz/lib/common/shapes.c:3556
    #3 0x7fd25405966a in common_init_node /tmp/tmp.bXYbsH93VJ/graphviz/lib/common/utils.c:658
    #4 0x7fd24fc78a01 in dot_init_node /tmp/tmp.bXYbsH93VJ/graphviz/lib/dotgen/dotinit.c:40
    #5 0x7fd24fc79522 in dot_init_node_edge /tmp/tmp.bXYbsH93VJ/graphviz/lib/dotgen/dotinit.c:81
    #6 0x7fd24fc7ad61 in dotLayout /tmp/tmp.bXYbsH93VJ/graphviz/lib/dotgen/dotinit.c:295
    #7 0x7fd24fc7c4b9 in doDot /tmp/tmp.bXYbsH93VJ/graphviz/lib/dotgen/dotinit.c:450
    #8 0x7fd24fc7ca94 in dot_layout /tmp/tmp.bXYbsH93VJ/graphviz/lib/dotgen/dotinit.c:496
    #9 0x7fd253f7673d in gvLayoutJobs /tmp/tmp.bXYbsH93VJ/graphviz/lib/gvc/gvlayout.c:85
    #10 0x55a9961b3960 in main /tmp/tmp.bXYbsH93VJ/graphviz/cmd/dot/dot.c:132
    #11 0x7fd253d2309a in __libc_start_main ../csu/libc-start.c:308

3 years agoMerge branch 'smattr/47A158E5-FA26-4B4C-8E27-A9024E198823' into 'master'
Matthew Fernandez [Sat, 23 Jan 2021 01:57:25 +0000 (01:57 +0000)]
Merge branch 'smattr/47A158E5-FA26-4B4C-8E27-A9024E198823' into 'master'

remove CentOS 6 from CI

Closes #1915

See merge request graphviz/graphviz!1704

3 years agoremove CentOS 6 from CI
Matthew Fernandez [Sat, 2 Jan 2021 02:43:21 +0000 (18:43 -0800)]
remove CentOS 6 from CI

CentOS 6 was EOLed in December 2020. Closes #1915.

3 years agoMerge branch 'dotguide-fix' into 'master'
Matthew Fernandez [Sat, 23 Jan 2021 01:08:12 +0000 (01:08 +0000)]
Merge branch 'dotguide-fix' into 'master'

fix minor dotguide.pdf mistake

See merge request graphviz/graphviz!1701

3 years agoMerge branch 'development-release-2.46.1-dev' into 'master'
Matthew Fernandez [Tue, 19 Jan 2021 01:44:55 +0000 (01:44 +0000)]
Merge branch 'development-release-2.46.1-dev' into 'master'

Development release 2.46.1~dev

See merge request graphviz/graphviz!1673

3 years agoStart 2.46.1~dev development series
Magnus Jacobsson [Sun, 15 Nov 2020 11:49:19 +0000 (12:49 +0100)]
Start 2.46.1~dev development series

3 years agoMerge branch 'stable-release-2.46.0' into 'master' 2.46.0
Magnus Jacobsson [Mon, 18 Jan 2021 17:47:31 +0000 (17:47 +0000)]
Merge branch 'stable-release-2.46.0' into 'master'

Stable Release 2.46.0

See merge request graphviz/graphviz!1672

3 years agoStable Release 2.46.0
Magnus Jacobsson [Sun, 15 Nov 2020 11:47:12 +0000 (12:47 +0100)]
Stable Release 2.46.0

3 years agoRemove commented out collection = 'stable'
Magnus Jacobsson [Sun, 15 Nov 2020 12:31:28 +0000 (13:31 +0100)]
Remove commented out collection = 'stable'

Leaving the "unused" collection as a comment was originally intended
to ensure that no mistake is made when the collection is changed, but
since there's an assertion guarding for this, this is unnecessary and
just gives less clean commit diffs.

3 years agoMerge branch 'smattr/2A611047-3870-44E3-86E9-D20FFD2141D2' into 'master'
Matthew Fernandez [Fri, 15 Jan 2021 15:23:55 +0000 (15:23 +0000)]
Merge branch 'smattr/2A611047-3870-44E3-86E9-D20FFD2141D2' into 'master'

Check for empty strings in tp and hp (rebased)

Closes #1907

See merge request graphviz/graphviz!1702

3 years agoCheck for empty strings in tp and hp.
Rob Hart [Wed, 16 Dec 2020 21:50:19 +0000 (13:50 -0800)]
Check for empty strings in tp and hp.

Edit by Matthew Fernandez: Squashed a fixup commit into this one, adjusted the
(now prior) test case to expect to pass, and added a changelog entry. For
reference, the bug being fixed was introduced in
31bab037c9bfde3bd18e06b5ab878c09de265ccf.

Fixes #1907.

3 years agoAdd regression test
Rob Hart [Sat, 19 Dec 2020 22:14:22 +0000 (14:14 -0800)]
Add regression test

Edit by Matthew Fernandez: moved this commit ahead of the one that fixes the bug
and marked the test case as expected to fail. This allows us to more accurately
confirm the bug exists and its fix works as intended, while still leaving the
commit series bisectable.

3 years agoMerge branch 'smattr/50D4C953-08DB-4F48-97AF-17EAE740053D' into 'master'
Matthew Fernandez [Wed, 13 Jan 2021 15:09:15 +0000 (15:09 +0000)]
Merge branch 'smattr/50D4C953-08DB-4F48-97AF-17EAE740053D' into 'master'

fix repeated agmemreads failing

Closes #1910

See merge request graphviz/graphviz!1693

3 years agofix repeated agmemreads failing
Matthew Fernandez [Tue, 22 Dec 2020 03:08:33 +0000 (19:08 -0800)]
fix repeated agmemreads failing

This reverts commits 429718cb387092b5bf81850ac97d18ca34149055 but with a
slightly different variant of the macro hack that avoids subsequent sed
replacement steps. I had several false starts at this fix, so let's detail what
did not work:

  1. We cannot implement an always-no-answering isatty() locally or redirect
     isatty() to another function, because Flex calls isatty(fileno(f)) and our
     "FILE" from SFIO does not provide this. On operating systems where fileno()
     references an offset in the FILE struct (e.g. macOS) this causes a
     segfault. So we need to suppress the entire argument to isatty(), not just
     the call to it.

  2. Versions of Flex prior to 2.5.39 emit a spurious extern declaration [0]. If
     we reverted 429718cb387092b5bf81850ac97d18ca34149055 as-is, we would have
     also had to revert 3b00c1fc6b949cc9744d075e0d2b2ed4b1c46763. However, even
     this would not be enough because we now support a CMake build, so we would
     have to introduce a corresponding find-and-replace step in
     lib/cgraph/CMakeLists.txt. Rather than do this, I came up with a different
     macro replacement that still makes isatty() calls evaluate to 0 but does
     not require other find-and-replace steps.

  3. Although Flex 2.5.39 was released almost a decade ago, we cannot easily
     drop support for prior versions of Flex. The latest version of Apple XCode
     ships Flex 2.5.35 and is unlikely to upgrade any time soon. This means most
     macOS users have Flex 2.5.35 without realizing it. Compounding the problem,
     the files generated by Flex #include headers that ship with Flex, so even
     macOS users who have a newer version of Flex via Homebrew/Macports may
     accidentally have the Flex 2.5.35 headers in their include path. The path
     of least irritation to our downstream macOS users appear to be retaining
     Flex 2.5.35 support.

Fixes #1910. The underlying problem here still exists: with `never-interactive`
set in the lib/cgraph/scan.l lexer, we are somehow not resetting internal state
in between lexer invocations. I suspect this will return as an issue in future
and we will have to more thoroughly debug this.

  [0]: Fixed upstream in Flex, but only made it into release 2.5.39:
    https://github.com/westes/flex/commit/7ef69b02e6969d1a0372e1d4ee8cb3b51519dc62

3 years agotest case for #1910
Matthew Fernandez [Tue, 22 Dec 2020 02:39:02 +0000 (18:39 -0800)]
test case for #1910

3 years agoMerge branch 'smattr/48e9426c-8dbf-4ae9-8bf0-1f39f4608ad7' into 'master'
Matthew Fernandez [Tue, 12 Jan 2021 01:18:19 +0000 (01:18 +0000)]
Merge branch 'smattr/48e9426c-8dbf-4ae9-8bf0-1f39f4608ad7' into 'master'

revert changes to add non-local names to internal map

Closes #1876

See merge request graphviz/graphviz!1686

3 years agorevert changes to add non-local names to internal map
Matthew Fernandez [Sun, 29 Nov 2020 21:21:00 +0000 (13:21 -0800)]
revert changes to add non-local names to internal map

Merge Request !1489 made a change to which names were stored in the internal
map. Following this, non-local names (user-provided ones; not starting with '%')
were stored in the internal map as well as local names. This inadvertently broke
some fdp and circo assumptions (#1876, #1877, !1676).

This change reverts the main pieces of the following commits, resolving #1876,
#1877, and #1909, while re-opening #1767 and #1789.
  * 4f283dd1c02a6a4999b53ad2fcbf2264a7074a8b
  * 85b09cf13179b0e5ab8bddb4857e3d2af0a39a31
  * 9409324489a69557229d3d6f505857b9af85a913
  * 2a9449a99b2a2146fce01fa1d9713e999ad3dd4e
  * 14be5169ef49faad0f30cd9d36cdd438e1739f77
  * b6ffeca3a4457efcffbc3fcdbcee683375f74d05

We will need to find a different solution to #1767.

3 years agoadd a test case for #1909
Matthew Fernandez [Sat, 26 Dec 2020 18:14:22 +0000 (10:14 -0800)]
add a test case for #1909

3 years agoadd a test case for #1876
Matthew Fernandez [Thu, 19 Nov 2020 03:16:40 +0000 (19:16 -0800)]
add a test case for #1876

3 years agoadd a test case for #1877
Matthew Fernandez [Thu, 19 Nov 2020 03:10:15 +0000 (19:10 -0800)]
add a test case for #1877

3 years agofix minor dotguide.pdf mistake
Ed J [Sat, 9 Jan 2021 20:36:46 +0000 (20:36 +0000)]
fix minor dotguide.pdf mistake

3 years agofix: require exactly \d+.\d+.\d+ for a release version
Matthew Fernandez [Sat, 9 Jan 2021 20:03:53 +0000 (12:03 -0800)]
fix: require exactly \d+.\d+.\d+ for a release version

This regex was incorrectly checking for anything *starting* with this pattern.
As a result, versions like "2.44.2~dev.20210109.1932" would pass this check.
Related to #1892.

3 years agofix: handle --version not being passed to deployment script
Matthew Fernandez [Sat, 9 Jan 2021 19:32:12 +0000 (11:32 -0800)]
fix: handle --version not being passed to deployment script

b443b70a828a34c79c71e41af9cb2eab7b950a14 incorrectly did not anticipate neither
the --force nor --version flags being passed to the deployment script.
Unfortunately I failed to notice this because I was testing using --force and
there was no easy way to test the final work flow until merging to master.

There is also no easy way to test this commit before being merged. I have run
pylint, but after that just need to cross my fingers.

Related to #1892.

3 years agoMerge branch 'smattr/F5C5A183-1A9A-4363-8DBB-331CC44CDBA7' into 'master'
Matthew Fernandez [Sat, 9 Jan 2021 19:01:37 +0000 (19:01 +0000)]
Merge branch 'smattr/F5C5A183-1A9A-4363-8DBB-331CC44CDBA7' into 'master'

rewrite deployment CI task to create releases on Gitlab

Closes #1892

See merge request graphviz/graphviz!1689

4 years agorewrite deployment CI task to create releases on Gitlab
Matthew Fernandez [Tue, 1 Dec 2020 15:02:30 +0000 (07:02 -0800)]
rewrite deployment CI task to create releases on Gitlab

Prior to this commit, the deployment CI task runs on a private runner and
uploads release artifacts to www2.graphviz.org. The SSH steps in the deployment
task are currently failing due to connectivity issues. The current maintainers
are unable to fix this as we do not have enough knowledge of how this work flow
was intended to function.

Apart from these concerns, Gitlab have recently introduced support for so-called
“generic packages” [0] to host binary artifacts directly on Gitlab (or its
underlying CDN) as well as the ability to programmatically create releases [1]
on the releases page of a project. The decision was made to simplify the
Graphviz infrastructure and host future releases (both stable and development)
on Gitlab.

This change rewrites the deployment task to (1) run on the Gitlab shared runner
using a release-cli Docker image, (2) upload package artifacts to Graphviz'
generic package, and (3) create a release from this for stable version numbers.

To comprehend the role the generic package container is playing here, note that
generic package version numbers are synthesized from commit SHA and are not
intended to be exposed to users. Users can browse the generic package page [2],
but are only ever expected to be interested in the latest version available
here. In contrast, version numbers on the release page [3] are intended to
correspond to Graphviz stable version numbers. ci/deploy.py handles mapping a
release on this page to its related (synthesized) generic package version.

Closes #1892.

  [0]: https://docs.gitlab.com/ee/user/packages/generic_packages/index.html
  [1]: https://gitlab.com/gitlab-org/release-cli/-/blob/master/docs/index.md
  [2]: https://gitlab.com/graphviz/graphviz/-/packages
  [3]: https://gitlab.com/graphviz/graphviz/-/releases

4 years agofix doc typo
Matthew Fernandez [Thu, 10 Dec 2020 04:35:41 +0000 (20:35 -0800)]
fix doc typo

4 years agoMerge branch 'master' into 'master'
Matthew Fernandez [Thu, 10 Dec 2020 04:57:00 +0000 (04:57 +0000)]
Merge branch 'master' into 'master'

Trivial fixes

See merge request graphviz/graphviz!1687