{"push_id":863752747,"size":543,"distinct_size":0,"ref":"refs/heads/master","head":"3871e429c4f54b7b541092d10906b9f2b639b720","before":"dd8f23c995ec094b9c3af0b18831cb296c5b97ec","commits":[{"sha":"dc27c1052904316012cb53ffcf3cbdc79eb35a1e","author":{"email":"1750b40f5f8ece675f35ee623e4faa3f1e366369@llnl.gov","name":"Tom Scogland"},"message":"flux-lstopo: adds command to run lstopo on instance\n\nThe command pulls all topology data from the resource-hwloc module,\naggregates it into a tempfile, and passes that and all other arguments\nthrough to an instance of the lstopo command.  It's basic, but it does\nthe job nicely.","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/dc27c1052904316012cb53ffcf3cbdc79eb35a1e"},{"sha":"92169c5558f55cbc24cae76070f46b58f5cb812d","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"modules/kvs: deprecate json-c interfaces\n\nRename the kvs setter callbacks to RFC 7 approved names, and add\npointer to typedef.\n\nInternally in libkvs, avoid some unnecessary type casting for KVS\nwatch handling with different types of setters by making the generic\ncallback pointer a (void *) instead of kvs_set_obj_f.\n\nDefine kvsdir_t and kvsitr_t as structs rather than pointers to\nstructs per RFC 7.\n\nRename the KVS functions that take (json_object *) to have a _obj\nsuffix and set the deprecated attribtue on them.\n  kvs_get() -> kvs_get_obj()\n  kvs_put() -> kvs_put_obj()\n  kvs_watch() -> kvs_watch_obj()\n  kvs_watch_once() -> kvs_watch_once_obj()\n  kvsdir_get() -> kvsdir_get_obj()\n  kvsdir_put() -> kvsdir_put_obj()\n\nAdd back versions of the above that take a json string argument under\nthe original names\n\nUpdate users.","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/92169c5558f55cbc24cae76070f46b58f5cb812d"},{"sha":"c85bc0734093981594efae2103c48f53cc14e99b","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"modules/libmrpc: deprecate json-c interfaces\n\nDefine flux_mrpc_t as a struct rather than a pointer to one per\nRFC 7.\n\nRename all libmrpc functions that take a (json_object *) argument\nto have a _obj suffix.  Set the deprecated attribute on these functions.\n\nAdd back json string versions of the above functions.\n\nUpdate users.","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/c85bc0734093981594efae2103c48f53cc14e99b"},{"sha":"00ac7e69f8f2f9edbdd470557b374d314d83aac9","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"modules/libjsc: deprecate json-c interfaces\n\nAdd a _obj suffix to the public functions that take json_object,\nand set the deprecated flag.\n\nAdd back the original functions with (char *json_str) arguments\nreplacing (json_object *)\n\nUpdate cmd/flux-jstat to use the new, non-deprecated functions.","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/00ac7e69f8f2f9edbdd470557b374d314d83aac9"},{"sha":"da7a553aa5d1150a868a0092365c59d4507e84cb","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"modules/libzio,subprocess,kz: drop json-c from API\n\nDirectly convert the following functions with (json_object *)\narguments to JSON strings:\n  zio_send_f ()\n  zio_write_json ()\n  zio_json_decode ()\n  zio_json_encode ()\n  zio_json_eof ()\n  subprocess_io_cb_f ()\n  kz_put_json()\n  kz_get_json()\n\nThe zio_send_f () and subprocess_io_cb_f () callbacks should no longer\ndestroy their json argument (passed now as const char *).\n\nDefine zio_t, kz_t as struct rather than a pointer to one per RFC 7.\n\nUpdate users.","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/da7a553aa5d1150a868a0092365c59d4507e84cb"},{"sha":"d4fdbbb929e487e580889e5d44ae489ea9b8ccaf","author":{"email":"515aee1de6d55547211d8d97de1026df5c837e7f@gmail.com","name":"Mark Grondona"},"message":"Merge pull request #350 from garlick/json_c_free_api\n\ndeprecate json-c API interfaces","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/d4fdbbb929e487e580889e5d44ae489ea9b8ccaf"},{"sha":"0b0a482a4044d2e67aec871951167364ca11ae67","author":{"email":"515aee1de6d55547211d8d97de1026df5c837e7f@gmail.com","name":"Mark Grondona"},"message":"Merge pull request #345 from trws/flux-lstopo\n\nFlux lstopo","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/0b0a482a4044d2e67aec871951167364ca11ae67"},{"sha":"1159b6362db0fc5600a1c433582b9e1c82b3ca93","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"modules/kvs: kvs_put() EINVAL on inval JSON\n\nIn the recent change to JSON strings, kvs_put() now must\nparse its JSON string argument.  If that fails, it was returning\nEPROTO, but that should actually be EINVAL since it is caused by\nan invalid argument.","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/1159b6362db0fc5600a1c433582b9e1c82b3ca93"},{"sha":"53fe3576049e1a49031bba62b425b6b681360f1f","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"modules/kvs: add kvdir_get_size ()\n\nThis function returns the number of entries in a KVS directory.\nFixes #341.","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/53fe3576049e1a49031bba62b425b6b681360f1f"},{"sha":"4818e58d9e3fa41d7bd4a5458d6ca8d982743f31","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"cmd/flux-kvs: add flux-kvs dirsize\n\nAdd hook to exercise the new kvsdir_get_size() call.","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/4818e58d9e3fa41d7bd4a5458d6ca8d982743f31"},{"sha":"dfa1003182a78c8419d18276bec6ee490d0f4d5b","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"cmd/flux-kvs: stop using deprecated KVS functions","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/dfa1003182a78c8419d18276bec6ee490d0f4d5b"},{"sha":"27607884a82402ebfe31fc71885d4f88c093bf53","author":{"email":"90eebc3ed9e472707552aa1f0850807e64b4e5e4@gmail.com","name":"Jim Garlick"},"message":"test: add unit test for kvsdir_get_size()\n\nCreate a directory, populate it with some keys, and then check that\nits size is as expected using flux-kvs dirsize.\n\nAlso, replace empty directory test macro that looked for no output from\n\"flux-kvs dir\" with a test that verifies \"flux-kvs dirsize\" prints 0.","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/27607884a82402ebfe31fc71885d4f88c093bf53"},{"sha":"13fe8d0b78af720a04def0e13310e0ee340ee30b","author":{"email":"1750b40f5f8ece675f35ee623e4faa3f1e366369@llnl.gov","name":"Tom Scogland"},"message":"libutil: adding Redis string, sds, library and vec\n\nNew support libraries for easier manipulation of dnamic-sized data, pulled in\nto ease some slightly complicated string management for hwloc support and\nmore precise environment handling.  While that is the primary reason, sds is\nalso fast, binary compatible, and very good for slicing and dicing partially\nsend messages and so-forth, which is what Redis uses it for.  The vec library\nis just a simple way to dynamically generate dense arrays, which makes working\nwith the split and join functions from sds, as well as anything that requires\na dynamic argv-style input, easier.","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/13fe8d0b78af720a04def0e13310e0ee340ee30b"},{"sha":"01940e6a70a22104df101cd040edaad8c37de309","author":{"email":"1750b40f5f8ece675f35ee623e4faa3f1e366369@llnl.gov","name":"Tom Scogland"},"message":"config: path environment variables dedup on push\n\nfixes #311\n\nThere are a lot more changes here than I expected to need, the main reason is\nthat lua paths are horrendously difficult to treat like any other kind of\npath, because of the way they treat two contiguous separators as a proxy for\nthe default path.  As it is, this version de-duplicates all path components\nfrom all inputs, but when it finds an empty path component `<sep><sep>` or\n`;;`, it inserts the separator twice into the path and then moves on.  This\nworks for the lua paths, but disallows any truly empty component.  It was the\nbest solution I could seem to come up with.\n\nlibutil/iterators: adding iterator macros\n\nczmq containers work well, but do not provide foreach macros, these greatly\nshorten the code to generate a for-loop to iterate over one of them,\nespecially the zhash.","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/01940e6a70a22104df101cd040edaad8c37de309"},{"sha":"dc0009d0e436f4fa01f421949270d7dd6b300d6d","author":{"email":"1750b40f5f8ece675f35ee623e4faa3f1e366369@llnl.gov","name":"Tom Scogland"},"message":"util/usa: make deduping array a lib\n\nThe env handling grew a class for building a vector of strings that can easily\nsplit input strings, join a complete output, or build an argv-style argument\nlist.  This has been broken out as a utility class on the chance it could be\nuseful elsewhere.","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/dc0009d0e436f4fa01f421949270d7dd6b300d6d"},{"sha":"7b48210b54bb792da2c5347a0a9327cf3194cc74","author":{"email":"c37150ea8944ca36e316c2ea250e46bfa4e9cb1f@llnl.gov","name":"Mark A. Grondona"},"message":"testsuite: add simple tests for path handling\n\nAdd a couple simple tests for path element handling in the flux(1)\ncommand driver. These tests attempt to verify that path elements are\npushed to the head of PATH-style environment variables and that the\npushed elements are de-duplicated in the resulting variable value.","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/7b48210b54bb792da2c5347a0a9327cf3194cc74"},{"sha":"74bc3cc42b983eb78f716e2018b58987acb08b94","author":{"email":"1750b40f5f8ece675f35ee623e4faa3f1e366369@llnl.gov","name":"Tom Scogland"},"message":"conf/env: functions renamed and lua path reworked\n\nThe \"split and push while de-duplicating\" functions are now named\n`*_upsert_{front,back}` to reflect their alternative behavior.  If\nanyone has other ideas for this, let me know, this was the closest I\ncould seem to come. This commit also adds the push functions back as\nexplicit non-deduplicating push functions, and uses one of them to\nsimplify the handling of the lua default path.","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/74bc3cc42b983eb78f716e2018b58987acb08b94"},{"sha":"258208956e695dd42a804937ec07186bdd4748a9","author":{"email":"1750b40f5f8ece675f35ee623e4faa3f1e366369@llnl.gov","name":"Tom Scogland"},"message":"config/env: properly handle contiguous separators\n\nThis tests the complex path de-duplication, where an incoming path\nalready contains duplicates, as well as preservation of a user's\nexternal environment value.\n\nAfter the switch in lua path handling, empty path components returned by\nsplit were not being handled correctly, causing an extra path separator\nto be added the first time it was encountered.  This commit adds a test\nfor this case, and a check to ensure that empty components don't add\nextra separators.\n\nThe names should be a bit more intuitive for new users, also the interface\nfunctions have been documented in conf.h with doxygen compliant doc-comments.","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/258208956e695dd42a804937ec07186bdd4748a9"},{"sha":"9dc9242cb0953b2843a6a23ba65166720f5909bc","author":{"email":"515aee1de6d55547211d8d97de1026df5c837e7f@gmail.com","name":"Mark Grondona"},"message":"Merge pull request #351 from garlick/kvsdir_get_size\n\nadd kvsdir_get_size()","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/9dc9242cb0953b2843a6a23ba65166720f5909bc"},{"sha":"b6f9b4e6ba77c3ba1b749085baacf9d87f9cc284","author":{"email":"515aee1de6d55547211d8d97de1026df5c837e7f@gmail.com","name":"Mark Grondona"},"message":"Merge pull request #315 from trws/env_updates\n\nEnsure PATH-style variables in flux(1) cmd internal conf are deduplicated\r\nwhen pushing new elements (and other improvements)","distinct":false,"url":"https://api.github.com/repos/trws/flux-core/commits/b6f9b4e6ba77c3ba1b749085baacf9d87f9cc284"}]}