Skip to content

Commit 6fa8b7f

Browse files
committed
Don't export json-c symbols starting with an underscore, put deprecated exports into a "JSONC_PRIVATE" version, and note stuff to do during releases.
See also PR json-c#639 and issue json-c#621
1 parent 6068d3f commit 6fa8b7f

File tree

2 files changed

+51
-32
lines changed

2 files changed

+51
-32
lines changed

RELEASE_CHECKLIST.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
* https://github.com/lvc/abi-compliance-checker
1919
* If the new release is not backwards compatible, then this is a MAJOR release.
2020
* Mention removed features in ChangeLog
21+
* Consider re-adding backwards compatible support, through symbol
22+
aliases and appropriate entries in json-c.sym
2123
* Update the AUTHORS file
2224
* Exclude mentioning changes that have already been included in a point
2325
release of the previous release branch.
@@ -63,6 +65,11 @@ to
6365

6466
git commit -a -m "Bump version to ${release}"
6567

68+
If we're doing a major release (SONAME bump), also bump the version
69+
of ALL symbols in json-c.sym.
70+
See explanation at https://github.com/json-c/json-c/issues/621
71+
More info at: https://software.intel.com/sites/default/files/m/a/1/e/dsohowto.pdf
72+
6673
------------
6774

6875
Generate the doxygen documentation:

json-c.sym

Lines changed: 44 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,53 @@
1-
JSONC_0.14 {
2-
global:
3-
_json_c_set_last_err;
4-
_json_c_strerror;
5-
_json_c_strerror_enable;
1+
2+
/*
3+
* Symbol versioning for libjson-c.
4+
* All exported symbols must be listed here.
5+
*
6+
* See
7+
* https://software.intel.com/sites/default/files/m/a/1/e/dsohowto.pdf
8+
*/
9+
10+
/*
11+
* Symbols in JSONC_PRIVATE are exported for historical
12+
* reasons, but should not be used outside of json-c.
13+
*/
14+
JSONC_PRIVATE {
615
array_list_add;
7-
array_list_bsearch;
816
array_list_del_idx;
917
array_list_free;
10-
array_list_get_idx;
11-
array_list_length;
1218
array_list_new;
1319
array_list_put_idx;
1420
array_list_sort;
21+
json_hex_chars;
22+
json_parse_double;
23+
json_parse_int64;
24+
json_parse_uint64;
25+
lh_table_delete;
26+
lh_table_delete_entry;
27+
lh_table_free;
28+
lh_table_insert;
29+
lh_table_insert_w_hash;
30+
lh_table_new;
31+
lh_table_resize;
32+
mc_debug;
33+
mc_error;
34+
mc_get_debug;
35+
mc_info;
36+
mc_set_debug;
37+
mc_set_syslog;
38+
printbuf_free;
39+
printbuf_memappend;
40+
printbuf_memset;
41+
printbuf_new;
42+
printbuf_reset;
43+
sprintbuf;
44+
};
45+
46+
JSONC_0.14 {
47+
global:
48+
array_list_bsearch;
49+
array_list_get_idx;
50+
array_list_length;
1551
json_c_get_random_seed;
1652
json_c_object_sizeof;
1753
json_c_set_serialization_double_format;
@@ -20,7 +56,6 @@ JSONC_0.14 {
2056
json_c_version_num;
2157
json_c_visit;
2258
json_global_set_string_hash;
23-
json_hex_chars;
2459
json_number_chars;
2560
json_object_array_add;
2661
json_object_array_bsearch;
@@ -91,9 +126,6 @@ JSONC_0.14 {
91126
json_object_to_json_string_ext;
92127
json_object_to_json_string_length;
93128
json_object_userdata_to_json_string;
94-
json_parse_double;
95-
json_parse_int64;
96-
json_parse_uint64;
97129
json_pointer_get;
98130
json_pointer_getf;
99131
json_pointer_set;
@@ -115,30 +147,10 @@ JSONC_0.14 {
115147
lh_kchar_table_new;
116148
lh_kptr_table_new;
117149
lh_ptr_equal;
118-
lh_table_delete;
119-
lh_table_delete_entry;
120-
lh_table_free;
121-
lh_table_insert;
122-
lh_table_insert_w_hash;
123150
lh_table_length;
124-
lh_table_lookup;
125151
lh_table_lookup_entry;
126152
lh_table_lookup_entry_w_hash;
127153
lh_table_lookup_ex;
128-
lh_table_new;
129-
lh_table_resize;
130-
mc_debug;
131-
mc_error;
132-
mc_get_debug;
133-
mc_info;
134-
mc_set_debug;
135-
mc_set_syslog;
136-
printbuf_free;
137-
printbuf_memappend;
138-
printbuf_memset;
139-
printbuf_new;
140-
printbuf_reset;
141-
sprintbuf;
142154

143155
local:
144156
*;

0 commit comments

Comments
 (0)