diff --git a/.gitignore b/.gitignore
index b5e675a4..e99a905f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,8 @@ src/main/python/test.pdf
src/main/python/experiment_table.tex
src/main/python/result_analysis/experiment_table.tex
src/main/python/output.txt
+kls_database.db
+bin
+dataset/mined-cherries
+dataset/repo-sample.yaml
+dataset/unsplit-mined-cherries.zip
diff --git a/Dockerfile b/Dockerfile
index 05cfcc18..dc79028e 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,7 @@
-FROM openjdk:19-alpine
+FROM alpine:latest
+RUN apk update
+RUN apk add --no-cache --upgrade openjdk21
# Build the jar files
WORKDIR /home/user
COPY src ./src
@@ -12,15 +14,30 @@ COPY gradle gradle
WORKDIR /home/user
RUN ./gradlew Cherries || exit
-FROM openjdk:19-alpine
+FROM alpine:latest
RUN apk update
# Install dependencies for unix patch
-RUN apk add --no-cache --upgrade bash diffutils patch git python3 py3-matplotlib unzip
+RUN apk add --no-cache --upgrade bash diffutils patch git python3 py3-matplotlib unzip openjdk21
# Install dependencies for patching with matching
RUN apk add --no-cache curl bash gcc musl-dev
+RUN apk add --no-cache python3 poetry
+
+RUN apk add --no-cache zip unzip
+COPY dataset /home/user/dataset
+WORKDIR /home/user/dataset
+RUN zip -s 0 mined-cherries.zip --out unsplit-mined-cherries.zip
+RUN unzip unsplit-mined-cherries
+RUN unzip repo-sample.zip
+WORKDIR /home/user
+
+RUN apk add --no-cache texlive-most
+
+COPY src/main/python ./analysis
+WORKDIR /home/user/analysis
+
ARG GROUP_ID
ARG USER_ID
@@ -57,3 +74,8 @@ RUN rustup default stable
# RUN rustup default nightly
RUN cargo install --path /home/user/mpatch
+
+
+WORKDIR /home/user/analysis
+RUN poetry install
+WORKDIR /home/user/
diff --git a/INSTALL.md b/INSTALL.md
new file mode 100644
index 00000000..a6e947eb
--- /dev/null
+++ b/INSTALL.md
@@ -0,0 +1,82 @@
+# Installation
+## Installation Instructions
+In the following, we describe how to setup the evaluation of our paper step-by-step.
+The instructions explain how to build the Docker image and run the validation in a Docker container.
+For __Windows__ users, we recommend the use of WSL2 or a similar Linux environment.
+
+### 1. Install Docker (if required)
+How to install Docker depends on your operating system:
+
+- _Windows or Mac_: You can find download and installation instructions [here](https://www.docker.com/get-started).
+- _Linux Distributions_: How to install Docker on your system, depends on your distribution. The chances are high that Docker is part of your distributions package database.
+Docker's [documentation](https://docs.docker.com/engine/install/) contains instructions for common distributions.
+
+Then, start the docker deamon.
+
+### 2. Open a Suitable Terminal
+```
+# Windows Command Prompt:
+ - Press 'Windows Key + R' on your keyboard
+ - Type in 'cmd'
+ - Click 'OK' or press 'Enter' on your keyboard
+
+# Windows PowerShell:
+ - Open the search bar (Default: 'Windows Key') and search for 'PowerShell'
+ - Start the PowerShell
+
+# Linux:
+ - Press 'ctrl + alt + T' on your keyboard
+```
+
+Clone this repository to a directory of your choice using git:
+```shell
+git clone https://github.com/VariantSync/patching-with-matching-eval.git
+```
+
+### 3. Build the Docker Container
+To build the Docker container you can run the `build` script:
+```
+# Linux/Mac/WSL2 (bash):
+ ./build.sh
+```
+
+## 4. Verification & Replication
+
+### Running the Replication or Verification
+To execute the replication you can run the `execute` script corresponding to your operating system with `reproduction` as first argument.
+
+`./execute.sh reproduction`
+
+> WARNING!
+> TODO: RUNTIME WARNING
+> TODO: DISK USAGE WARNING
+> Therefore, we offer a short verification (TODO minutes) ...
+> You can run it by providing "verification" as argument instead of "reproduction" (i.e., `./execute.sh verification`).
+> If you want to stop the execution, you can call the provided script for stopping the container in a separate terminal.
+> When restarted, the execution will continue processing by restarting at the last unfinished state.
+> `./stop-execution.sh`
+
+You might see warnings or errors reported from SLF4J like `Failed to load class "org.slf4j.impl.StaticLoggerBinder"` which you can safely ignore.
+Further troubleshooting advice can be found at the bottom of this file.
+
+The results of the verification will be stored in the [evaluation-workdir](evaluation-workdir) directory.
+
+### Expected Output of the Verification
+TODO
+
+## Troubleshooting
+
+### 'Got permission denied while trying to connect to the Docker daemon socket'
+`Problem:` This is a common problem under Linux, if the user trying to execute Docker commands does not have the permissions to do so.
+
+`Fix:` You can fix this problem by either following the [post-installation instructions](https://docs.docker.com/engine/install/linux-postinstall/), or by executing the scripts in the replication package with elevated permissions (i.e., `sudo`).
+
+### 'Unable to find image 'mpatch-reproduction:latest' locally'
+`Problem:` The Docker container could not be found. This either means that the name of the container that was built does not fit the name of the container that is being executed (this only happens if you changed the provided scripts), or that the Docker container was not built yet.
+
+`Fix:` Follow the instructions described above in the section `Build the Docker Container`.
+
+### Failed to load class "org.slf4j.impl.StaticLoggerBinder"
+`Problem:` An operation within the initialization phase of the logger library we use (tinylog) failed.
+
+`Fix:` Please ignore this warning. Tinylog will fall back onto a default implementation (`Defaulting to no-operation (NOP) logger implementation`) and logging will work as expected.
diff --git a/LICENSE.LGPL3 b/LICENSE.LGPL3
deleted file mode 100644
index 153d416d..00000000
--- a/LICENSE.LGPL3
+++ /dev/null
@@ -1,165 +0,0 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
- 0. Additional Definitions.
-
- As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
- "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
- An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
- A "Combined Work" is a work produced by combining or linking an
-Application with the Library. The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
- The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
- The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
- 1. Exception to Section 3 of the GNU GPL.
-
- You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
- 2. Conveying Modified Versions.
-
- If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
- a) under this License, provided that you make a good faith effort to
- ensure that, in the event an Application does not supply the
- function or data, the facility still operates, and performs
- whatever part of its purpose remains meaningful, or
-
- b) under the GNU GPL, with none of the additional permissions of
- this License applicable to that copy.
-
- 3. Object Code Incorporating Material from Library Header Files.
-
- The object code form of an Application may incorporate material from
-a header file that is part of the Library. You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
- a) Give prominent notice with each copy of the object code that the
- Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the object code with a copy of the GNU GPL and this license
- document.
-
- 4. Combined Works.
-
- You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
- a) Give prominent notice with each copy of the Combined Work that
- the Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the Combined Work with a copy of the GNU GPL and this license
- document.
-
- c) For a Combined Work that displays copyright notices during
- execution, include the copyright notice for the Library among
- these notices, as well as a reference directing the user to the
- copies of the GNU GPL and this license document.
-
- d) Do one of the following:
-
- 0) Convey the Minimal Corresponding Source under the terms of this
- License, and the Corresponding Application Code in a form
- suitable for, and under terms that permit, the user to
- recombine or relink the Application with a modified version of
- the Linked Version to produce a modified Combined Work, in the
- manner specified by section 6 of the GNU GPL for conveying
- Corresponding Source.
-
- 1) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (a) uses at run time
- a copy of the Library already present on the user's computer
- system, and (b) will operate properly with a modified version
- of the Library that is interface-compatible with the Linked
- Version.
-
- e) Provide Installation Information, but only if you would otherwise
- be required to provide such information under section 6 of the
- GNU GPL, and only to the extent that such information is
- necessary to install and execute a modified version of the
- Combined Work produced by recombining or relinking the
- Application with a modified version of the Linked Version. (If
- you use option 4d0, the Installation Information must accompany
- the Minimal Corresponding Source and Corresponding Application
- Code. If you use option 4d1, you must provide the Installation
- Information in the manner specified by section 6 of the GNU GPL
- for conveying Corresponding Source.)
-
- 5. Combined Libraries.
-
- You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
- a) Accompany the combined library with a copy of the same work based
- on the Library, uncombined with any other library facilities,
- conveyed under the terms of this License.
-
- b) Give prominent notice with the combined library that part of it
- is a work based on the Library, and explaining where to find the
- accompanying uncombined form of the same work.
-
- 6. Revised Versions of the GNU Lesser General Public License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
- If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
\ No newline at end of file
diff --git a/LICENSE_APACHE b/LICENSE_APACHE
new file mode 100644
index 00000000..4864f51e
--- /dev/null
+++ b/LICENSE_APACHE
@@ -0,0 +1,190 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ Copyright 2025 Alexander Schultheiß
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/LICENSE_MIT b/LICENSE_MIT
new file mode 100644
index 00000000..0669b4d3
--- /dev/null
+++ b/LICENSE_MIT
@@ -0,0 +1,7 @@
+Copyright 2025 Alexander Schultheiß
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.md b/README.md
index 6715a9d8..f76479da 100644
--- a/README.md
+++ b/README.md
@@ -1,23 +1,207 @@
-# Reproduction Package for Pushing the Boundaries of Patch Automation
+# Decades of GNU Patch and Git Cherry-Pick: Can We Do Better?
-This artifact comprises the files and data to reproduce our evaluation of various patchers, including mpatch.
+This is the reproduction package for our paper _Decades of GNU Patch and Git Cherry-Pick: Can We Do Better?_ which has been accepted to the 48th International Conference on Software Engineering (ICSE 2026).
## Content
-Our sample of GitHub repositories and our dataset of mined patch scenarios is located in the _evaluation-workdir/data_ directory of the evaluation's working directory.
-The sample and dataset are compressed as zip archives that have to be unpacked before they can be used.
+The reproduction package consists of three main parts:
-Our implementation of mpatch was written in Rust and can be found under _mpatch_. In its _mpatch/README.md_, you can also find instructions on
-how to generate the documentation for mpatch.
+1. [__mpatch__](/mpatch/README.md): The implementation of our novel match-based patcher, written in Rust.
+2. [__Mined cherries__](dataset/): Our dataset of cherry picks mined from 5,000 GitHub repositories.
+3. [__Empirical evaluation__](src/main/kotlin/org/variantsync/evaluation/PatcherEvaluationMain.kt): Our empirical evaluation of different language-agnostic patchers.
-The implementation of our evaluation setup can be found in the Java and Kotlin sources in the _src/main_ folder.
-The main file of the evaluation is _src/main/kotlin/org/anon/evaluation/PatcherEvaluationMain.kt_.
+## Requirements
+Software Requirements
+- [Docker](https://www.docker.com/)
-Our scripts for applying the various metrics to the different patchers and analyzing the statistics can be found under _src/main/python/result_analysis_.
-The raw results of our evaluation are archived under _evaluation-workdir/results_
+Hardware Requirements
+- We recommend running the evaluation on a system with at least __64GB__ of primary memory (RAM).
+- 100GB—2TB of free drive space, depending on the configuration of the Docker image.
-## Results without outliers
-In our paper, we mention that we re-analyzed our results after excluding outliers.
-Specifically, we removed the top 0.05% of results with the highest number of required fixes for each patcher; thus, treating patchers equally in this regard.
-The updated version of Table IV is shown below.
+> [!WARNING]
+> The used storage medium should be very fast, e.g., M.2 NVMe SSD with 5000 MB/s, otherwise the evaluation may take an extremely long time.
+
+Other Requirements
+- A stable internet connection.
+
+
+## Installation
+
+### [Optional] Configuration
+Before building the Docker image, you may __optionally__ configure how the evaluation is executed.
+To this end, we provide two configuration files: [config-reproduction.properties](docker/config-reproduction.properties) for the configuration of the reproduction of the entire evaluation, and [config-verification.properties](docker/config-verification) for the verification of the correct installation of the reproduction package.
+
+Depending on the available hardware, you may need to adjust the following settings:
+
+- The number of threads used (i.e., how many repositories are processed in parallel). Please note that each thread requires an additional `40GB` of free space on your drive.
+- Whether all repositories should be cloned before the evaluation. This eliminates the need for a stable internet connection once all repositories have been cloned.
+- Whether repositories should be deleted after they have been evaluated. This significantly reduces the amount of required free space on your drive (around 100GB should be enough).
+
+> [!WARNING]
+> The entire set of repositories considered by our evaluation requires about 600 GBs of free space on our drive, if `clean-repositories` is set to `false`.
+
+> [!NOTE]
+> Every change in the configuration must be followed by rebuilding the Docker image.
+
+
+### Building the Docker image
+The reproduction package is meant to be run in the Docker image that can be built using the provided Dockerfile.
+
+#### Linux
+On Linux, you can execute the provided `build.sh` script to build the Docker image.
+
+> **Note:** The build process may take a while. (~5 minutes)
+
+> **Note:** The build process may require sudo privileges.
+
+```shell
+./build.sh
+```
+
+#### Other OS
+On other machines, you may call Docker directly.
+In this case, you have to provide a USER_ID and GROUP_ID for the user in the Docker container:
+```bash
+# For example, under Linux, both variables are set as follows:
+# USER_ID=$(id -u ${SUDO_USER:-$(whoami)})
+# GROUP_ID=$(id -g ${SUDO_USER:-$(whoami)})
+
+docker build --network=host --build-arg USER_ID=$USER_ID --build-arg GROUP_ID=$GROUP_ID -t mpatch-reproduction .
+```
+Ideally, the `USER_ID` and `GROUP_ID` match the ids of the user running the command (not root!).
+Under Windows, you may provide any suitable id (e.g., `1000` for both)
+
+```shell
+docker build --network=host --build-arg USER_ID=1000 --build-arg GROUP_ID=1000 -t mpatch-reproduction .
+```
+
+
+### Verifying the correct installation
+Once the building of the Docker image has completed, you can verify its correct installation.
+By default, the verification will be executed within the [evaluation-workdir](evaluation-workdir) directory.
+
+#### Starting the verification
+On Linux, you can execute the provided `execute.sh` script with the `verification` argument:
+```shell
+./execute.sh verification
+```
+
+On other machines, you may start a Docker container from the Docker image with the following command:
+```bash
+# Depending on your OS, you may have to change how the first path to evaluation-workdir is defined
+docker run --rm -v "./evaluation-workdir/":"/home/user/evaluation-workdir" mpatch-reproduction verification
+```
+
+> [!NOTE]
+> Depending on your hardware, the verification should require 5-30 minutes.
+
+#### Verification in a custom directory
+> [!NOTE]
+> You may provide any directory as first argument for `-v`, either by altering the `execute.sh` script or changing the command above.
+> The `evaluation-workdir` is where the evaluation stores all its data while processing the repositories and evaluating patchers.
+> The results will also be saved to this directory, once the evaluation or verification finishes.
+
+ For example, your may start the evaluation with
+```shell
+ docker run --rm -v "/home/YOUR_USERNAME/ICSE-reproduction/":"/home/user/evaluation-workdir" mpatch-reproduction verification
+```
+
+#### Expected outcome
+
+> [!NOTE]
+> If you executed the evaluation in a custom directory, all mentioned files will be located there.
+
+
+The verification should begin with output that looks similar to the following screenshot:
+```shell
+2025-08-21 14:36:30 [main] org.variantsync.evaluation.PatcherEvaluationMainKt.main()
+INFO: Starting experiment initialization.
+2025-08-21 14:36:30 [main] org.variantsync.evaluation.execution.EvalUtilsKt.createOrLoadSamples()
+INFO: Loading dataset for C with 1 usable repositories
+2025-08-21 14:36:30 [main] org.variantsync.evaluation.execution.EvalUtilsKt.createOrLoadSamples()
+...
+INFO: Loading dataset for TypeScript with 1 usable repositories
+2025-08-21 14:36:30 [main] org.variantsync.evaluation.execution.EvalUtilsKt.createOrLoadSamples()
+INFO: Done.
+
+2025-08-21 14:36:30 [main] org.variantsync.evaluation.PatcherEvaluationMainKt.main()
+INFO: Processing 5 repos in parallel
+2025-08-21 14:36:30 [main] org.variantsync.evaluation.PatcherEvaluationMainKt.main()
+INFO: Already considered 0 repos.
+2025-08-21 14:36:30 [main] org.variantsync.evaluation.PatcherEvaluationMainKt.main()
+INFO: Already processed a total of 0 evaluation runs.
+
+2025-08-21 14:36:35 [main] org.variantsync.evaluation.PatcherEvaluationMainKt.main()
+INFO: Considering a total of 85 cherry-picks for repetition 1
+2025-08-21 14:36:35 [pool-1-thread-3] org.variantsync.evaluation.execution.EvalUtilsKt.cloneGitHubRepo()
+INFO: cloning https://github.com/tensorflow/serving.git into /home/user/evaluation-workdir/REPOS/tensorflow_serving
+...
+```
+The output shows that the dataset used for verification contains one repository for each project language. The projects are cloned into the `evaluation-workdir`.
+Once a project has been cloned, the patchers are evaluated on the cherry picks (i.e., patches) that have been found for that repository.
+
+The verification should complete with the following output:
+```shell
+Latexmk: All targets (metrics-verification.pdf) are up-to-date
+
+++++++++++++++++++++++++++++++++++++
+ Analysis done
+++++++++++++++++++++++++++++++++++++
+
+The result table can be found under evaluation-workdir/metrics-verification.pdf
+```
+
+After all repositories have been considered, the result analysis is executed.
+The raw results can be found in the `evaluation-workdir/results` directory.
+
+
+
+In addition, the script generates a PDF file with a result table similar to the one presented in our paper.
+This table can be found under `evaluation-workdir/metrics-verification.pdf`.
+It should look similar to this:
+
+
+> [!NOTE]
+> The verification results shown are based on only a tiny portion of our dataset and are therefore not representative.
+
+# Starting the reproduction
+Once you have verified the correct installation, you can start the reproduction similar to how you started the verification.
+You may also change the working directory to a custom directory as described for the verification.
+
+On Linux, you can execute the provided `execute.sh` script with the `reproduction` argument:
+```shell
+./execute.sh reproduction
+```
+
+On other machines, you may start a Docker container from the Docker image with the following command:
+```bash
+# Depending on your OS, you may have to change how the first path to evaluation-workdir is defined
+docker run --rm -v "./evaluation-workdir/":"/home/user/evaluation-workdir" mpatch-reproduction reproduction
+```
+
+> [!NOTE]
+> The results of the reproduction will be stored in the same manner as the results of the verification.
+
+> [!NOTE]
+> Our evaluation processes large amounts of data.
+> The main bottleneck is not the available CPU but the speed of the drive in which the `evaluation-workdir` is located.
+> Depending on your hardware, the full reproduction may require a very long time. The expected runtime are 5-10 days, but the reproduction may also require several weeks if the drive is too slow.
+
+
+
+## Troubleshooting
+
+### 'Got permission denied while trying to connect to the Docker daemon socket'
+`Problem:` This is a common problem under Linux, if the user trying to execute Docker commands does not have the permissions to do so.
+
+`Fix:` You can fix this problem by either following the [post-installation instructions](https://docs.docker.com/engine/install/linux-postinstall/), or by executing the scripts in the replication package with elevated permissions (i.e., `sudo`).
+
+### 'Unable to find image 'mpatch-reproduction:latest' locally'
+`Problem:` The Docker container could not be found. This either means that the name of the container that was built does not fit the name of the container that is being executed (this only happens if you changed the provided scripts), or that the Docker container was not built yet.
+
+`Fix:` Follow the instructions described above in the section `Build the Docker Container`.
+
+### Failed to load class "org.slf4j.impl.StaticLoggerBinder"
+`Problem:` An operation within the initialization phase of the logger library we use (tinylog) failed.
+
+`Fix:` Please ignore this warning. Tinylog will fall back onto a default implementation (`Defaulting to no-operation (NOP) logger implementation`) and logging will work as expected.
-
diff --git a/REQUIREMENTS.md b/REQUIREMENTS.md
index d156e4ec..75be79c6 100644
--- a/REQUIREMENTS.md
+++ b/REQUIREMENTS.md
@@ -2,7 +2,7 @@
There are no special requirements regarding the CPU or GPU.
### Primary Memory
-We recommend to run the evaluation on a system with at least __64GB__ of primary memory (RAM).
+We recommend running the evaluation on a system with at least __64GB__ of primary memory (RAM).
### Secondary Memory
I/O operations have a considerable impact on the total runtime of the evaluation.
@@ -10,8 +10,8 @@ Therefore, we strongly recommend storing the repository on an SSD (M2 technology
and to configure Docker to store its data (e.g., images and containers) on this SSD as well.
Using an HDD can lead to severe runtime problems and thereby timeouts that threaten the validity of the results.
-The evaluation requires about __2TB__ of space as it clones hundreds of repositories, which in turn are copied dozens of times for multi-threading.
-The space requirement can be considerably reduced by changing the number of used threads (e.g., to __20GB__), but then the evaluation will require considerably more time as well.
+The evaluation requires about __1TB__ of space as it considers hundreds of repositories, which in turn are copied dozens of times for multi-threaded patcher evaluation.
+The space requirement can be considerably reduced by changing the number of used threads in the [reproduction config](docker/config-reproduction.properties) (e.g., to __20GB__), but then the evaluation will require considerably more time as well.
## Software Requirements
The study does not require a certain operating system or prepared environment.
diff --git a/STATUS.md b/STATUS.md
new file mode 100644
index 00000000..171d3c14
--- /dev/null
+++ b/STATUS.md
@@ -0,0 +1,29 @@
+# STATUS
+## Overview
+The reproduction package for our paper _Decades of GNU Patch and Git Cherry-Pick: Can We Do Better?_ consists of three parts:
+
+1. [__mpatch__](/mpatch/README.md): The implementation of our novel match-based patcher, written in Rust.
+2. [__Mined cherries__](evaluation-workdir/data): Our large dataset of cherry picks mined from 5,000 GitHub repositories.
+3. [__Empirical evaluation__](src/main/kotlin/org/variantsync/evaluation/PatcherEvaluationMain.kt): Our empirical evaluation of different language-agnostic patchers.
+
+## Purpose
+Our artifact has the following purposes:
+
+### **Reproducibility**
+We provide replication instructions that allow to replicate the evaluation presented in Sections 4 through 6 in our paper.
+The replication is executed in a Docker container. To replicate our results, we also provide a dataset of the relevant open-source repositories in the very state we performed our validation on.
+
+### **Reusability**
+Our evaluation can be extended and reused to evaluate and compare additional patchers with the patchers considered in our paper.
+To do so, the [Patcher](src/main/kotlin/org/variantsync/evaluation/patching/Patcher.kt) interface has to be implemented for each additional patcher.
+Then, an instance of the implementing class can be added to the list of patchers during [evaluation initialization](src/main/kotlin/org/variantsync/evaluation/execution/EvalOperations.kt).
+
+Our novel patcher _mpatch_ is a fully functional tool that can be used as a patcher alternative to git cherry-pick or GNU patch.
+It can also be integrated into other evaluation setups using its [library](mpatch/src/lib.rs) or [CLI](/mpatch/README.md).
+
+## Claims
+We claim the _Artifacts Available_ badge as we made our artifacts publicly available on [Github](TODO) and [Zenodo](TODO) with an open-source license.
+Our dataset and the repositories from which we mined it are also publicly available.
+
+We claim the _Artifacts Evaluated Reusable_ badge as our evaluation and our novel patcher can be reused by other researchers and practitioners.
+
diff --git a/build.gradle.kts b/build.gradle.kts
index ec00c947..4f59fea0 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,12 +1,13 @@
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
plugins {
- kotlin("jvm") version "1.9.0"
+ kotlin("jvm") version "2.1.10"
id("com.github.johnrengelman.shadow") version "8.1.1"
application
}
group = "org.variantsync.core"
+
version = "0.2.0"
repositories {
@@ -19,17 +20,16 @@ dependencies {
implementation("org.variantsync.vevos:simulation:2.0.0")
// https://mvnrepository.com/artifact/org.apache.commons/commons-configuration2
implementation("org.apache.commons:commons-configuration2:2.9.0")
+ implementation("commons-io:commons-io:2.20.0")
implementation("commons-logging:commons-logging:1.3.1")
// https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils
implementation("commons-beanutils:commons-beanutils:1.9.4")
implementation("org.tinylog:tinylog-api-kotlin:2.6.2")
implementation("org.tinylog:tinylog-impl:2.6.2")
- implementation("de.ovgu:featureide.lib.fm:3.7.2")
// https://mvnrepository.com/artifact/org.eclipse.jgit/org.eclipse.jgit
implementation("org.eclipse.jgit:org.eclipse.jgit:6.8.0.202311291450-r")
implementation("org.sat4j:core:2.3.5")
implementation("org.jetbrains:annotations:24.0.1")
- implementation("net.ssehub:kernel_haven:1.0.0")
implementation("net.lingala.zip4j:zip4j:2.11.4")
implementation("org.variantsync:diffdetective:1.0.0")
implementation("org.slf4j:slf4j-api:2.0.5")
@@ -56,15 +56,9 @@ tasks.create("Cherries") {
configurations = listOf(project.configurations.runtimeClasspath.get())
- manifest {
- attributes["Main-Class"] = "org.variantsync.evaluation.PatcherEvaluationMainKt"
- }
+ manifest { attributes["Main-Class"] = "org.variantsync.evaluation.PatcherEvaluationMainKt" }
}
-tasks.test {
- useJUnitPlatform()
-}
+tasks.test { useJUnitPlatform() }
-application {
- mainClass.set("Main")
-}
+application { mainClass.set("Main") }
diff --git a/build.sh b/build.sh
index db1022f0..ace24fc4 100755
--- a/build.sh
+++ b/build.sh
@@ -2,4 +2,4 @@
USER_ID=$(id -u ${SUDO_USER:-$(whoami)})
GROUP_ID=$(id -g ${SUDO_USER:-$(whoami)})
-docker build --network=host --build-arg USER_ID=$USER_ID --build-arg GROUP_ID=$GROUP_ID -t pwm-eval .
+docker build --network=host --build-arg USER_ID=$USER_ID --build-arg GROUP_ID=$GROUP_ID -t mpatch-reproduction .
diff --git a/clean-docker.sh b/clean-docker.sh
index f3700666..588afa6b 100755
--- a/clean-docker.sh
+++ b/clean-docker.sh
@@ -1,9 +1,9 @@
#! /bin/bash
echo "Cleaning all related Docker data. This may take a moment..."
echo "Trying to stop running containers..."
-docker stop "$(docker ps -a -q --filter "ancestor=pwm-eval")"
-echo "Removing pwm-eval image..."
-docker image rm pwm-eval
-echo "Removing pwm-eval containers..."
-docker container rm "$(docker ps -a -q --filter "ancestor=pwm-eval")"
+docker stop "$(docker ps -a -q --filter "ancestor=mpatch-reproduction")"
+echo "Removing mpatch image..."
+docker image rm mpatch-reproduction
+echo "Removing mpatch containers..."
+docker container rm "$(docker ps -a -q --filter "ancestor=mpatch-reproduction")"
echo "...done."
diff --git a/evaluation-workdir/data/.gitignore b/dataset/.gitignore
similarity index 91%
rename from evaluation-workdir/data/.gitignore
rename to dataset/.gitignore
index d98d7412..6973f7d4 100644
--- a/evaluation-workdir/data/.gitignore
+++ b/dataset/.gitignore
@@ -14,3 +14,4 @@
!mined-cherries.z11
!mined-cherries.z12
!repo-sample.zip
+!mined-cherries-verification/
diff --git a/dataset/mined-cherries-verification/C#_Unity-Technologies_ml-agents.yaml b/dataset/mined-cherries-verification/C#_Unity-Technologies_ml-agents.yaml
new file mode 100644
index 00000000..8a545d76
--- /dev/null
+++ b/dataset/mined-cherries-verification/C#_Unity-Technologies_ml-agents.yaml
@@ -0,0 +1,347 @@
+- language: C#
+ total_number_of_results: '13'
+ repo_name: Unity-Technologies/ml-agents
+ total_number_of_commits: '7096'
+ total_number_of_branches: '426'
+ total_number_of_committers: '70'
+- - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 707730256a6797336ba749f05f7dbf10dadd8126
+ parent_ids:
+ - 02b77dd7ac05c386004845f30c9a623845bfbe91
+ message: "[bug-fix] Use correct memories for LSTM SAC (#5228)\n\n* Use correct memories for LSTM SAC\r\n\r\n* Add some comments"
+ author: Ervin T
+ committer: GitHub
+ time: 'Time { raw: git_time { time: 1617908980, offset: -240, sign: 45 } }'
+ target:
+ id: bae46c274b743900cdb87b654181e7b83ab8535c
+ parent_ids:
+ - efa8f344c1d6bd2c59c8b8df3989df1f1b791f61
+ message: |
+ [bug-fix] Use correct memories for LSTM SAC (#5228)
+
+ * Use correct memories for LSTM SAC
+
+ * Add some comments
+
+ (cherry picked from commit 707730256a6797336ba749f05f7dbf10dadd8126)
+ author: Ervin T
+ committer: Ervin Teng
+ time: 'Time { raw: git_time { time: 1617917937, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 2c03d2b544d0c615e7b60d939f01532674d80753
+ parent_ids:
+ - fce4ad3bdae981dc8f03f0e2d239792e61006ea8
+ message: |
+ Buffer fixes
+ author: Ervin Teng
+ committer: Ervin Teng
+ time: 'Time { raw: git_time { time: 1614122747, offset: -300, sign: 45 } }'
+ target:
+ id: f879b616a797bf54cf19b1a6c616aa7cd5f72389
+ parent_ids:
+ - 9a0005314f2116def4c6232c72fa9fdd1f6d7fe0
+ message: |
+ Buffer fixes
+
+ (cherry picked from commit 2c03d2b544d0c615e7b60d939f01532674d80753)
+ author: Ervin Teng
+ committer: Ervin Teng
+ time: 'Time { raw: git_time { time: 1614184238, offset: -300, sign: 45 } }'
+ is_trivial: false
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 8457c5bf87dcd943eb200a68735d48f84864448c
+ parent_ids:
+ - 2ca6a87c508b97f74ca5845a6eedca52429581a3
+ message: |+
+ Fixing the GymWrapper Logging issue (#5201)
+
+ author: Vincent-Pierre BERGES
+ committer: GitHub
+ time: 'Time { raw: git_time { time: 1617159000, offset: -420, sign: 45 } }'
+ target:
+ id: cf18e0e4035cfc699531eadd2c38513848bc5a83
+ parent_ids:
+ - 5d1c1e1f5fa70e7f44c5bcf6ce026a7520d47cde
+ message: |
+ Fixing the GymWrapper Logging issue (#5201)
+
+ (cherry picked from commit 8457c5bf87dcd943eb200a68735d48f84864448c)
+ author: Vincent-Pierre BERGES
+ committer: Ervin Teng
+ time: 'Time { raw: git_time { time: 1617917860, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: ac4f43cf18b98d0fc7063b9b831e07429f7ea39e
+ parent_ids:
+ - 30fde2dffe2edd2562b24d1051f257b39d20a837
+ message: "Load individual elements if state dict load fails (#5213)\n\n\r\nCo-authored-by: Vincent-Pierre BERGES \r\nCo-authored-by: Ervin T. "
+ author: andrewcoh <54679309+andrewcoh@users.noreply.github.com>
+ committer: GitHub
+ time: 'Time { raw: git_time { time: 1617729234, offset: -240, sign: 45 } }'
+ target:
+ id: 5e4f279376616ab3096a819db0bed663483ddc73
+ parent_ids:
+ - bae46c274b743900cdb87b654181e7b83ab8535c
+ message: |
+ Load individual elements if state dict load fails (#5213)
+
+ Co-authored-by: Vincent-Pierre BERGES
+ Co-authored-by: Ervin T.
+ (cherry picked from commit ac4f43cf18b98d0fc7063b9b831e07429f7ea39e)
+ author: andrewcoh <54679309+andrewcoh@users.noreply.github.com>
+ committer: Ervin Teng
+ time: 'Time { raw: git_time { time: 1617918137, offset: -240, sign: 45 } }'
+ is_trivial: false
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: aac2ee6cb650e6969a6d8b9f7c966f69b9e2df04
+ parent_ids:
+ - 21548e02e83a563c75a0b6bae0cbbe1ceb6552e0
+ message: "[🐛 🔨 ] set_action_for_agent expects a ActionTuple with batch size 1. (#5208)\n\n* [Bug Fix] set_action_for_agent expects a ActionTuple with batch size 1.\r\n\r\n* moving a line around"
+ author: Vincent-Pierre BERGES
+ committer: GitHub
+ time: 'Time { raw: git_time { time: 1617222987, offset: -420, sign: 45 } }'
+ target:
+ id: 2aaf326bf8ff13d11590fc8ee33f7e862503fb08
+ parent_ids:
+ - 7fae8734459a4ecd232bb8c63bfada7bed52ede3
+ message: |
+ [🐛 🔨 ] set_action_for_agent expects a ActionTuple with batch size 1. (#5208)
+
+ * [Bug Fix] set_action_for_agent expects a ActionTuple with batch size 1.
+
+ * moving a line around
+
+ (cherry picked from commit aac2ee6cb650e6969a6d8b9f7c966f69b9e2df04)
+ author: Vincent-Pierre BERGES
+ committer: Ervin Teng
+ time: 'Time { raw: git_time { time: 1617916611, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 272899a8a100b4ff1bbcaa575d2bc46965fc5938
+ parent_ids:
+ - 18ff7bc85cc504296f5d6586afe261d490f39e53
+ message: |+
+ [bug fix] Fix warning using demo recorder (#5216)
+
+ author: Vincent-Pierre BERGES
+ committer: GitHub
+ time: 'Time { raw: git_time { time: 1617309115, offset: -420, sign: 45 } }'
+ target:
+ id: f699d8db1a65e7a1435df819b7e3b3dee53b2593
+ parent_ids:
+ - 7b800d15aee4750c084f97b1db95acd32f6b56c3
+ message: |
+ [bug fix] Fix warning using demo recorder (#5216)
+
+ (cherry picked from commit 272899a8a100b4ff1bbcaa575d2bc46965fc5938)
+ author: Vincent-Pierre BERGES
+ committer: Ervin Teng
+ time: 'Time { raw: git_time { time: 1617917324, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 875feb01509d8191fc3cc60d6a08c931546fb6dc
+ parent_ids:
+ - 41818c5e42f35e68d74e43385228a6bfd3278aa0
+ message: |+
+ Fix path to PushBlock demo (#5198)
+
+ author: andrewcoh <54679309+andrewcoh@users.noreply.github.com>
+ committer: GitHub
+ time: 'Time { raw: git_time { time: 1617122444, offset: -240, sign: 45 } }'
+ target:
+ id: deebc3dc904b8e66f37bb2e57186227c6ce51f06
+ parent_ids:
+ - cf18e0e4035cfc699531eadd2c38513848bc5a83
+ message: |
+ Fix path to PushBlock demo (#5198)
+
+ (cherry picked from commit 875feb01509d8191fc3cc60d6a08c931546fb6dc)
+ author: andrewcoh <54679309+andrewcoh@users.noreply.github.com>
+ committer: Ervin Teng
+ time: 'Time { raw: git_time { time: 1617917880, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 63e7ad44d96b7663b91f005ca1d88f4f3b11dd2a
+ parent_ids:
+ - d17b735ea90616ad06ac536fd6e9de95ff398872
+ message: "[bug-fix] When agent isn't training, don't clear update buffer (#5205)\n\n* Don't clear update buffer, but don't append to it either\r\n\r\n* Update changelog\r\n\r\n* Address comments\r\n\r\n* Make experience replay buffer saving more verbose"
+ author: Ervin T
+ committer: GitHub
+ time: 'Time { raw: git_time { time: 1617288882, offset: -240, sign: 45 } }'
+ target:
+ id: 7b800d15aee4750c084f97b1db95acd32f6b56c3
+ parent_ids:
+ - 2aaf326bf8ff13d11590fc8ee33f7e862503fb08
+ message: |
+ [bug-fix] When agent isn't training, don't clear update buffer (#5205)
+
+ * Don't clear update buffer, but don't append to it either
+
+ * Update changelog
+
+ * Address comments
+
+ * Make experience replay buffer saving more verbose
+
+ (cherry picked from commit 63e7ad44d96b7663b91f005ca1d88f4f3b11dd2a)
+ author: Ervin T
+ committer: Ervin Teng
+ time: 'Time { raw: git_time { time: 1617917070, offset: -240, sign: 45 } }'
+ is_trivial: false
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 9c3dc4542ce2fa35f25dfa7809a7e1c2ee06001e
+ parent_ids:
+ - 73ba867a9a441585a00b3aa03de5c4cd1c72fc81
+ message: "[🐛 🔨 ]Adding the ELO to the GlobalTrainingStatus (#5202)\n\n* Adding the ELO to the GlobalTrainingStatus\r\n\r\n* Update ml-agents/mlagents/trainers/ghost/trainer.py\r\n\r\nCo-authored-by: andrewcoh <54679309+andrewcoh@users.noreply.github.com>\r\n\r\nCo-authored-by: andrewcoh <54679309+andrewcoh@users.noreply.github.com>"
+ author: Vincent-Pierre BERGES
+ committer: GitHub
+ time: 'Time { raw: git_time { time: 1617222527, offset: -420, sign: 45 } }'
+ target:
+ id: 7fae8734459a4ecd232bb8c63bfada7bed52ede3
+ parent_ids:
+ - 65c1550cfaee89c980a7b9f722e8925363507834
+ message: |
+ [🐛 🔨 ]Adding the ELO to the GlobalTrainingStatus (#5202)
+
+ * Adding the ELO to the GlobalTrainingStatus
+
+ * Update ml-agents/mlagents/trainers/ghost/trainer.py
+
+ Co-authored-by: andrewcoh <54679309+andrewcoh@users.noreply.github.com>
+
+ Co-authored-by: andrewcoh <54679309+andrewcoh@users.noreply.github.com>
+ (cherry picked from commit 9c3dc4542ce2fa35f25dfa7809a7e1c2ee06001e)
+ author: Vincent-Pierre BERGES
+ committer: Ervin Teng
+ time: 'Time { raw: git_time { time: 1617916603, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 86a4070bad4f5bca201db57f29117362c62617d0
+ parent_ids:
+ - 31e26e769cb286ef08c924a2320e5ec9202eab98
+ message: "[debug] Require all behavior names to have a matching YAML entry (#5210)\n\n* Add strict check to settings.py\r\n\r\n* Remove warning from trainer factory, add test\r\n\r\n* Add changelog\r\n\r\n* Fix test\r\n\r\n* Update changelog\r\n\r\n* Remove strict CLI options\r\n\r\n* Remove strict option, rename, make strict default\r\n\r\n* Remove newline\r\n\r\n* Update comments\r\n\r\n* Set default dict to actually default to a default dict\r\n\r\n* Fix tests\r\n\r\n* Fix tests again\r\n\r\n* Default trainer dict to requiring all fields\r\n\r\n* Fix settings typing\r\n\r\n* Use logger\r\n\r\n* Add default_settings to error"
+ author: Ervin T
+ committer: GitHub
+ time: 'Time { raw: git_time { time: 1618868475, offset: -240, sign: 45 } }'
+ target:
+ id: 06488b0635ae0e8d85846e76b693844010b7154d
+ parent_ids:
+ - ee8036815fd34513c6e44f75b8e3ef950bb7eae6
+ message: "[debug] Require all behavior names to have a matching YAML entry (#5210) (#5296)\n\n* Add strict check to settings.py\r\n\r\n* Remove warning from trainer factory, add test\r\n\r\n* Add changelog\r\n\r\n* Fix test\r\n\r\n* Update changelog\r\n\r\n* Remove strict CLI options\r\n\r\n* Remove strict option, rename, make strict default\r\n\r\n* Remove newline\r\n\r\n* Update comments\r\n\r\n* Set default dict to actually default to a default dict\r\n\r\n* Fix tests\r\n\r\n* Fix tests again\r\n\r\n* Default trainer dict to requiring all fields\r\n\r\n* Fix settings typing\r\n\r\n* Use logger\r\n\r\n* Add default_settings to error\r\n\r\n(cherry picked from commit 86a4070bad4f5bca201db57f29117362c62617d0)"
+ author: Ervin T
+ committer: GitHub
+ time: 'Time { raw: git_time { time: 1619118102, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 2ce6810846ba9268e4fb5fb082fa54e90414c980
+ parent_ids:
+ - 314f9e7e3355f6e5e1c6b017a39d156f1c01774b
+ message: "[bug-fix] Fix POCA LSTM, pad sequences in the back (#5206)\n\n* Pad buffer at the end\r\n\r\n* Fix padding in optimizer value estimate\r\n\r\n* Fix additional bugs and POCA\r\n\r\n* Fix groupmate obs, add tests\r\n\r\n* Update changelog\r\n\r\n* Improve tests\r\n\r\n* Address comments\r\n\r\n* Fix poca test\r\n\r\n* Fix buffer test\r\n\r\n* Increase entropy for Hallway\r\n\r\n* Add EOF newline\r\n\r\n* Fix Behavior Name\r\n\r\n* Address comments"
+ author: Ervin T
+ committer: GitHub
+ time: 'Time { raw: git_time { time: 1617662534, offset: -240, sign: 45 } }'
+ target:
+ id: efa8f344c1d6bd2c59c8b8df3989df1f1b791f61
+ parent_ids:
+ - deebc3dc904b8e66f37bb2e57186227c6ce51f06
+ message: |
+ [bug-fix] Fix POCA LSTM, pad sequences in the back (#5206)
+
+ * Pad buffer at the end
+
+ * Fix padding in optimizer value estimate
+
+ * Fix additional bugs and POCA
+
+ * Fix groupmate obs, add tests
+
+ * Update changelog
+
+ * Improve tests
+
+ * Address comments
+
+ * Fix poca test
+
+ * Fix buffer test
+
+ * Increase entropy for Hallway
+
+ * Add EOF newline
+
+ * Fix Behavior Name
+
+ * Address comments
+
+ (cherry picked from commit 2ce6810846ba9268e4fb5fb082fa54e90414c980)
+ author: Ervin T
+ committer: Ervin Teng
+ time: 'Time { raw: git_time { time: 1617917908, offset: -240, sign: 45 } }'
+ is_trivial: false
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 2c03d2b544d0c615e7b60d939f01532674d80753
+ parent_ids:
+ - fce4ad3bdae981dc8f03f0e2d239792e61006ea8
+ message: |
+ Buffer fixes
+ author: Ervin Teng
+ committer: Ervin Teng
+ time: 'Time { raw: git_time { time: 1614122747, offset: -300, sign: 45 } }'
+ target:
+ id: 2a26887b42ac2d514fc7cd54187402581a054275
+ parent_ids:
+ - a5b324a30ad3162cbf078eb37a6602fd9c2c4127
+ message: "Python Dataflow for Group Manager (#4926)\n\n* Make buffer type-agnostic\r\n\r\n* Edit types of Apped method\r\n\r\n* Change comment\r\n\r\n* Collaborative walljump\r\n\r\n* Make collab env harder\r\n\r\n* Add group ID\r\n\r\n* Add collab obs to trajectory\r\n\r\n* Fix bug; add critic_obs to buffer\r\n\r\n* Set group ids for some envs\r\n\r\n* Pretty broken\r\n\r\n* Less broken PPO\r\n\r\n* Update SAC, fix PPO batching\r\n\r\n* Fix SAC interrupted condition and typing\r\n\r\n* Fix SAC interrupted again\r\n\r\n* Remove erroneous file\r\n\r\n* Fix multiple obs\r\n\r\n* Update curiosity reward provider\r\n\r\n* Update GAIL and BC\r\n\r\n* Multi-input network\r\n\r\n* Some minor tweaks but still broken\r\n\r\n* Get next critic observations into value estimate\r\n\r\n* Temporarily disable exporting\r\n\r\n* Use Vince's ONNX export code\r\n\r\n* Cleanup\r\n\r\n* Add walljump collab YAML\r\n\r\n* Lower max height\r\n\r\n* Update prefab\r\n\r\n* Update prefab\r\n\r\n* Collaborative Hallway\r\n\r\n* Set num teammates to 2\r\n\r\n* Add config and group ids to HallwayCollab\r\n\r\n* Fix bug with hallway collab\r\n\r\n* Edits to HallwayCollab\r\n\r\n* Update onnx file meta\r\n\r\n* Make the env easier\r\n\r\n* Remove prints\r\n\r\n* Make Collab env harder\r\n\r\n* Fix group ID\r\n\r\n* Add cc to ghost trainer\r\n\r\n* Add comment to ghost trainer\r\n\r\n* Revert \"Add comment to ghost trainer\"\r\n\r\nThis reverts commit 292b6ce672a7a23ebfdd76bf07b11c50a825dcf4.\r\n\r\n* Actually add comment to ghosttrainer\r\n\r\n* Scale size of CC network\r\n\r\n* Scale value network based on num agents\r\n\r\n* Add 3rd symbol to hallway collab\r\n\r\n* Make comms one-hot\r\n\r\n* Fix S tag\r\n\r\n* Additional changes\r\n\r\n* Some more fixes\r\n\r\n* Self-attention Centralized Critic\r\n\r\n* separate entity encoder and RSA\r\n\r\n* clean up args in mha\r\n\r\n* more cleanups\r\n\r\n* fixed tests\r\n\r\n* entity embeddings work with no max\r\nIntegrate into CC\r\n\r\n* remove group id\r\n\r\n* very rough sketch for TeamManager interface\r\n\r\n* One layer for entity embed\r\n\r\n* Use 4 heads\r\n\r\n* add defaults to linear encoder, initialize ent encoders\r\n\r\n* add team manager id to proto\r\n\r\n* team manager for hallway\r\n\r\n* add manager to hallway\r\n\r\n* send and process team manager id\r\n\r\n* remove print\r\n\r\n* small cleanup\r\n\r\n* default behavior for baseTeamManager\r\n\r\n* add back statsrecorder\r\n\r\n* update\r\n\r\n* Team manager prototype (#4850)\r\n\r\n* remove group id\r\n\r\n* very rough sketch for TeamManager interface\r\n\r\n* add team manager id to proto\r\n\r\n* team manager for hallway\r\n\r\n* add manager to hallway\r\n\r\n* send and process team manager id\r\n\r\n* remove print\r\n\r\n* small cleanup\r\n\r\nCo-authored-by: Chris Elion \r\n\r\n* Remove statsrecorder\r\n\r\n* Fix AgentProcessor for TeamManager\r\nShould work for variable decision frequencies (untested)\r\n\r\n* team manager\r\n\r\n* New buffer layout, TeamObsUtil, pad dead agents\r\n\r\n* Use NaNs to get masks for attention\r\n\r\n* Add team reward to buffer\r\n\r\n* Try subtract marginalized value\r\n\r\n* Add Q function with attention\r\n\r\n* Some more progress - still broken\r\n\r\n* use singular entity embedding (#4873)\r\n\r\n* I think it's running\r\n\r\n* Actions added but untested\r\n\r\n* Fix issue with team_actions\r\n\r\n* Add next action and next team obs\r\n\r\n* separate forward into q_net and baseline\r\n\r\n* might be right\r\n\r\n* forcing this to work\r\n\r\n* buffer error\r\n\r\n* COMAA runs\r\n\r\n* add lambda return and target network\r\n\r\n* no target net\r\n\r\n* remove normalize advantages\r\n\r\n* add target network back\r\n\r\n* value estimator\r\n\r\n* update coma config\r\n\r\n* add target net\r\n\r\n* no target, increase lambda\r\n\r\n* remove prints\r\n\r\n* cloud config\r\n\r\n* use v return\r\n\r\n* use target net\r\n\r\n* adding zombie to coma2 brnch\r\n\r\n* add callbacks\r\n\r\n* cloud run with coma2 of held out zombie test env\r\n\r\n* target of baseline is returns_v\r\n\r\n* remove target update\r\n\r\n* Add team dones\r\n\r\n* ntegrate teammate dones\r\n\r\n* add value clipping\r\n\r\n* try again on cloud\r\n\r\n* clipping values and updated zombie\r\n\r\n* update configs\r\n\r\n* remove value head clipping\r\n\r\n* update zombie config\r\n\r\n* Add trust region to COMA updates\r\n\r\n* Remove Q-net for perf\r\n\r\n* Weight decay, regularizaton loss\r\n\r\n* Use same network\r\n\r\n* add base team manager\r\n\r\n* Remove reg loss, still stable\r\n\r\n* Black format\r\n\r\n* add team reward field to agent and proto\r\n\r\n* set team reward\r\n\r\n* add maxstep to teammanager and hook to academy\r\n\r\n* check agent by agent.enabled\r\n\r\n* remove manager from academy when dispose\r\n\r\n* move manager\r\n\r\n* put team reward in decision steps\r\n\r\n* use 0 as default manager id\r\n\r\n* fix setTeamReward\r\n\r\nCo-authored-by: Vincent-Pierre BERGES \r\n\r\n* change method name to GetRegisteredAgents\r\n\r\n* address comments\r\n\r\n* Revert C# env changes\r\n\r\n* Remove a bunch of stuff from envs\r\n\r\n* Remove a bunch of extra files\r\n\r\n* Remove changes from base-teammanager\r\n\r\n* Remove remaining files\r\n\r\n* Remove some unneeded changes\r\n\r\n* Make buffer typing neater\r\n\r\n* AgentProcessor fixes\r\n\r\n* Back out trainer changes\r\n\r\n* use delegate to avoid agent-manager cyclic reference\r\n\r\n* put team reward in decision steps\r\n\r\n* fix unregister agents\r\n\r\n* add teamreward to decision step\r\n\r\n* typo\r\n\r\n* unregister on disabled\r\n\r\n* remove OnTeamEpisodeBegin\r\n\r\n* change name TeamManager to MultiAgentGroup\r\n\r\n* more team -> group\r\n\r\n* fix tests\r\n\r\n* fix tests\r\n\r\n* Use attention tests from master\r\n\r\n* Revert \"Use attention tests from master\"\r\n\r\nThis reverts commit 78e052be8f36381bb6857817ff0f505716be83b9.\r\n\r\n* Use attention from master\r\n\r\n* Renaming fest\r\n\r\n* Use NamedTuples instead of attrs classes\r\n\r\n* Bug fixes\r\n\r\n* remove GroupMaxStep\r\n\r\n* add some doc\r\n\r\n* Fix mock brain\r\n\r\n* np float32 fixes\r\n\r\n* more renaming\r\n\r\n* Test for team obs in agentprocessor\r\n\r\n* Test for group and add team reward\r\n\r\n* doc improve\r\n\r\nCo-authored-by: Ervin T. \r\n\r\n* store registered agents in set\r\n\r\n* remove unused step counts\r\n\r\n* Global group ids\r\n\r\n* Fix Trajectory test\r\n\r\n* Remove duplicated files\r\n\r\n* Add team methods to AgentAction\r\n\r\n* Buffer fixes\r\n\r\n(cherry picked from commit 2c03d2b544d0c615e7b60d939f01532674d80753)\r\n\r\n* Add test for GroupObs\r\n\r\n* Change AgentAction back to 0 pad and add tests\r\n\r\n* Addressed some comments\r\n\r\n* Address some comments\r\n\r\n* Add more comments\r\n\r\n* Rename internal function\r\n\r\n* Move padding method to AgentBufferField\r\n\r\n* Fix slicing typing and string printing in AgentBufferField\r\n\r\n* Fix to-flat and add tests\r\n\r\n* Rename GroupmateStatus to AgentStatus\r\n\r\n* Update comments\r\n\r\n* Added GroupId, GlobalGroupId, GlobalAgentId types\r\n\r\n* Update comment\r\n\r\n* Make some agent processor properties internal\r\n\r\n* Rename add_group_status\r\n\r\n* Rename store_group_status, fix test\r\n\r\n* Rename clear_group_obs\r\n\r\nCo-authored-by: Andrew Cohen \r\nCo-authored-by: Ruo-Ping Dong \r\nCo-authored-by: Chris Elion \r\nCo-authored-by: andrewcoh <54679309+andrewcoh@users.noreply.github.com>\r\nCo-authored-by: Vincent-Pierre BERGES "
+ author: Ervin T
+ committer: GitHub
+ time: 'Time { raw: git_time { time: 1614885920, offset: -300, sign: 45 } }'
+ is_trivial: false
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 21548e02e83a563c75a0b6bae0cbbe1ceb6552e0
+ parent_ids:
+ - 9c3dc4542ce2fa35f25dfa7809a7e1c2ee06001e
+ message: |+
+ [Bug Fix] Issue 5204 : GymToUnityWrapper must call reset if done (#5207)
+
+ author: Vincent-Pierre BERGES
+ committer: GitHub
+ time: 'Time { raw: git_time { time: 1617222539, offset: -420, sign: 45 } }'
+ target:
+ id: 5d1c1e1f5fa70e7f44c5bcf6ce026a7520d47cde
+ parent_ids:
+ - f699d8db1a65e7a1435df819b7e3b3dee53b2593
+ message: |
+ [Bug Fix] Issue 5204 : GymToUnityWrapper must call reset if done (#5207)
+
+ (cherry picked from commit 21548e02e83a563c75a0b6bae0cbbe1ceb6552e0)
+ author: Vincent-Pierre BERGES
+ committer: Ervin Teng
+ time: 'Time { raw: git_time { time: 1617917838, offset: -240, sign: 45 } }'
+ is_trivial: true
diff --git a/dataset/mined-cherries-verification/C++_tensorflow_serving.yaml b/dataset/mined-cherries-verification/C++_tensorflow_serving.yaml
new file mode 100644
index 00000000..25bad63e
--- /dev/null
+++ b/dataset/mined-cherries-verification/C++_tensorflow_serving.yaml
@@ -0,0 +1,1370 @@
+- repo_name: tensorflow/serving
+ total_number_of_branches: '75'
+ total_number_of_commits: '8639'
+ language: C++
+ total_number_of_committers: '91'
+ total_number_of_results: '49'
+- - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: fdf23de9993c0fef83ce5a4029cd2ed8582039a8
+ parent_ids:
+ - 281c665b2eaed9836da313b720611019a1a12c31
+ message: |
+ Add missing include.
+
+ PiperOrigin-RevId: 212981021
+ author: awk
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1536936279, offset: -420, sign: 45 } }'
+ target:
+ id: 84ef62d579863d4f1b2fdc7151cd7b35136e89d3
+ parent_ids:
+ - c81b2c26d5965d20d7b40c109a01ef53b226caf6
+ message: |
+ Add missing include.
+
+ PiperOrigin-RevId: 212981021
+ (cherry picked from commit fdf23de9993c0fef83ce5a4029cd2ed8582039a8)
+ author: awk
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1536944261, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 5c7740fc3d8d5c017643a8cc40a7202717b10dd6
+ parent_ids:
+ - 831434474b34e0067a18b3b5bc0161b9e1c7b08b
+ message: |
+ Add git hash for version metadata of model server and add tags for dev and nightly builds.
+
+ PiperOrigin-RevId: 217403451
+ author: gvasudevan
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1539730648, offset: -420, sign: 45 } }'
+ target:
+ id: ff018e22b0fe1f4b98ae4b7a778b7194db2e2d9f
+ parent_ids:
+ - 02a6fc10216aed5644badac31f35cef3243688fa
+ message: |
+ Add git hash for version metadata of model server and add tags for dev and nightly builds.
+
+ PiperOrigin-RevId: 217403451
+ (cherry picked from commit 5c7740fc3d8d5c017643a8cc40a7202717b10dd6)
+ author: gvasudevan
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1540319108, offset: -240, sign: 45 } }'
+ is_trivial: false
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 6ff5d9f80ef4ae7b69af2e114fed969c163d6c47
+ parent_ids:
+ - 72edc451d4166b4e3e022b1e242046e2bfdd8c4c
+ message: |
+ Fix erroneous formatting of numbers that are larger than 6 digits.
+
+ Such numbers are converted to scientific notation (by StrCat()).
+ The code suffixed such numbers with '.0' yielding invalid numbers.
+
+ As an example before this fix, 9000000 would get string converted
+ (incorrectly) to 9e+06.0 instead of 9e+06 -- the latter is correct.
+ Similarly .00003 gets converted incorrectly to 3e-5.0 instead of
+ 3e-5
+
+ Fixes https://github.com/tensorflow/serving/issues/989
+
+ PiperOrigin-RevId: 204536301
+ author: awk
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1531520095, offset: -420, sign: 45 } }'
+ target:
+ id: fca72ce414b809dfacdc958e5988f98bad7e0dd7
+ parent_ids:
+ - 3d2db30e3b413764c8d3fba04ea5e3a08261d4ee
+ message: |
+ Fix erroneous formatting of numbers that are larger than 6 digits.
+
+ Such numbers are converted to scientific notation (by StrCat()).
+ The code suffixed such numbers with '.0' yielding invalid numbers.
+
+ As an example before this fix, 9000000 would get string converted
+ (incorrectly) to 9e+06.0 instead of 9e+06 -- the latter is correct.
+ Similarly .00003 gets converted incorrectly to 3e-5.0 instead of
+ 3e-5
+
+ Fixes https://github.com/tensorflow/serving/issues/989
+
+ PiperOrigin-RevId: 204536301
+ (cherry picked from commit 6ff5d9f80ef4ae7b69af2e114fed969c163d6c47)
+ author: awk
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1533180860, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 3a0bdbe5c216e4eeab8110cad8d959d21a2e376a
+ parent_ids:
+ - 8b8434240e688ac78f1132f19c86951f99ed2abe
+ message: |
+ Add Python 3.7 as supported for tensorflow-serving-api package.
+
+ The API package itself is a collection of .proto files, and should be
+ compatible with Python 3.7. Underlying dependencies: protobuf and grpcio
+ both support Python 3.7, so we can too.
+
+ Fixes #1640
+
+ PiperOrigin-RevId: 313979135
+ author: Abhijit Karmarkar
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1590891783, offset: -420, sign: 45 } }'
+ target:
+ id: f775bb25e80a6c7b3c66842eb9085d44d9752ec2
+ parent_ids:
+ - 43fec910a84f5883f569e61a32d2392f2c648570
+ message: |
+ Add Python 3.7 as supported for tensorflow-serving-api package.
+
+ The API package itself is a collection of .proto files, and should be
+ compatible with Python 3.7. Underlying dependencies: protobuf and grpcio
+ both support Python 3.7, so we can too.
+
+ Fixes #1640
+
+ PiperOrigin-RevId: 313979135
+ (cherry picked from commit 3a0bdbe5c216e4eeab8110cad8d959d21a2e376a)
+ author: Abhijit Karmarkar
+ committer: netfs
+ time: 'Time { raw: git_time { time: 1590892674, offset: -420, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 739b2065a4bd7f08b6f4b61ba6604124c1513db0
+ parent_ids:
+ - dba55c6f89c6478f775e8bb72b7f8682bb99c06c
+ message: |
+ Fix missing NCCL header path
+
+ PiperOrigin-RevId: 215463591
+ author: gvasudevan
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1538517343, offset: -420, sign: 45 } }'
+ target:
+ id: 1ac5f399de11f7abc1e0e114c36e5154dbd012e0
+ parent_ids:
+ - 62e06f742a8adb6719ac6017dc4be7882d3289bf
+ message: |
+ Fix missing NCCL header path
+
+ PiperOrigin-RevId: 215463591
+ (cherry picked from commit 739b2065a4bd7f08b6f4b61ba6604124c1513db0)
+ author: gvasudevan
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1538596178, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: be7c70d779a39fad73a535185a4f4f991c1d859a
+ parent_ids:
+ - 99d32fc8379cfb1082894b1ac4e4602784aa1264
+ message: |
+ Fix GPU build
+
+ Fixes https://github.com/tensorflow/serving/issues/1150
+
+ PiperOrigin-RevId: 217890974
+ author: gvasudevan
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1539970179, offset: -420, sign: 45 } }'
+ target:
+ id: a313d904abe7b298a9c0c3f6cb5fc80d0cba6bf5
+ parent_ids:
+ - ff018e22b0fe1f4b98ae4b7a778b7194db2e2d9f
+ message: |
+ Fix GPU build
+
+ Fixes https://github.com/tensorflow/serving/issues/1150
+
+ PiperOrigin-RevId: 217890974
+ (cherry picked from commit be7c70d779a39fad73a535185a4f4f991c1d859a)
+ author: gvasudevan
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1540319144, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: e1ceccbde64272fbe09915cc34053ad44648447e
+ parent_ids:
+ - 83533141aa62f1e08237c5b0f6380819a20c67a0
+ message: |
+ Return error strings that conform to JSON specs, to
+ prevent malformed JSON responses that fail to parse.
+
+ Fixes #1600
+
+ PiperOrigin-RevId: 310921928
+ author: Abhijit Karmarkar
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1589212514, offset: -420, sign: 45 } }'
+ target:
+ id: 1ff4d31cd9a0a736162813c149139cce0ccaaa2c
+ parent_ids:
+ - dae2bc6bcb622055bcf86f2f2b464d4950deff9f
+ message: |
+ Return error strings that conform to JSON specs, to
+ prevent malformed JSON responses that fail to parse.
+
+ Fixes #1600
+
+ PiperOrigin-RevId: 310921928
+ (cherry picked from commit e1ceccbde64272fbe09915cc34053ad44648447e)
+ author: Abhijit Karmarkar
+ committer: netfs
+ time: 'Time { raw: git_time { time: 1589828887, offset: -420, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 88ad2c62de3eb63846289534dfab500db1b2fb6b
+ parent_ids:
+ - e805d1b1fa2dc7eb47e913d3f35f391946102e01
+ message: |
+ Internal change.
+
+ PiperOrigin-RevId: 206635850
+ author: awk
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1532982326, offset: -420, sign: 45 } }'
+ target:
+ id: 10a67ef61d44635bcc17341dac970107e8f55495
+ parent_ids:
+ - 4383edee344026a8d5a111344c9cce8b426fce01
+ message: |
+ Internal change.
+
+ PiperOrigin-RevId: 206635850
+ (cherry picked from commit 88ad2c62de3eb63846289534dfab500db1b2fb6b)
+ author: awk
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1533156883, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: fb7c5defe70a5f454809dc46a947fd470294b67d
+ parent_ids:
+ - b16d34129468e30571bb725dd8c9a66cb905f8ea
+ message: |
+ Add util for get model status
+ author: ynqa
+ committer: ynqa
+ time: 'Time { raw: git_time { time: 1531906826, offset: 540, sign: 43 } }'
+ target:
+ id: af72316214f857f50bdf62dac36f79a6659bfeff
+ parent_ids:
+ - 79f621daa9642f011a8234a55cb7f9252f89e45a
+ message: |
+ Add util for get model status
+
+ (cherry picked from commit fb7c5defe70a5f454809dc46a947fd470294b67d)
+ author: ynqa
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1533156827, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: a173809f40b81299a79663d757a02ba201381e97
+ parent_ids:
+ - f8a607a11035732c3a3287cdd1ce2cb46856459b
+ message: |
+ Add old/beta gRPC API signature and route it to GA gRPC API.
+ This prevents breaking existing clients, along with a warning
+ that in (near) furture the old API will be removed.
+
+ PiperOrigin-RevId: 207878049
+ author: awk
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1533736870, offset: -420, sign: 45 } }'
+ target:
+ id: b7179d8e426ecbd0f0937e53c73b0ed7c7a6529d
+ parent_ids:
+ - c4f4bbe5484779ed277d240c73c32045d85e719f
+ message: |
+ Add old/beta gRPC API signature and route it to GA gRPC API.
+ This prevents breaking existing clients, along with a warning
+ that in (near) furture the old API will be removed.
+
+ PiperOrigin-RevId: 207878049
+ (cherry picked from commit a173809f40b81299a79663d757a02ba201381e97)
+ author: awk
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1533759581, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 1277991345f2144f194c6d5b87dc862a02068c5d
+ parent_ids:
+ - fd0a3d0bd8d0adc7ce2e52268d11189c4be126fc
+ message: |
+ Install TF Serving API in development Docker images
+
+ PiperOrigin-RevId: 213676487
+ author: gvasudevan
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1537386297, offset: -420, sign: 45 } }'
+ target:
+ id: defd37d1383739335983ebf00dd0899d0c0d3a2a
+ parent_ids:
+ - dc8d417c884d5af0d9a25f6a14d954d96756fb2a
+ message: |
+ Install TF Serving API in development Docker images
+
+ PiperOrigin-RevId: 213676487
+ (cherry picked from commit 1277991345f2144f194c6d5b87dc862a02068c5d)
+ author: gvasudevan
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1538596178, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 844b751d6325ef294b806d7549eb79eddafeb132
+ parent_ids:
+ - 5b78ebf5ecb123574d7414822088ce5998b6b0f8
+ message: Update build_pip_package.sh
+ author: gautamvasudevan <12356580+gautamvasudevan@users.noreply.github.com>
+ committer: GitHub
+ time: 'Time { raw: git_time { time: 1532452971, offset: -420, sign: 45 } }'
+ target:
+ id: 71127a782ab0113a4ec9776c29e7857c31fa4123
+ parent_ids:
+ - f34e8440208629f94a41ca08d0b9cbee2a607d01
+ message: |
+ Update build_pip_package.sh
+
+ (cherry picked from commit 844b751d6325ef294b806d7549eb79eddafeb132)
+ author: gautamvasudevan <12356580+gautamvasudevan@users.noreply.github.com>
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1533156883, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 2b276fc328e47c51e5c1d14d0e64ba2009773eca
+ parent_ids:
+ - b6810971dad0401b5457f4aa7b6eb6c22e7e5f13
+ message: |
+ Adds LICENSE file to tensorflow-serving-api python package.
+
+ It is recommended to include LICENSE file in the package.[1] But tensorflow-serving-api doesn't have one in it.
+
+ We need LICENSE file and recent versions of `wheel` will automatically pickup LICENSE file in local directory.
+
+ [1] https://packaging.python.org/tutorials/packaging-projects/#creating-a-license
+
+ PiperOrigin-RevId: 343562364
+ author: Chao Xie
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1605910310, offset: -480, sign: 45 } }'
+ target:
+ id: 93668685296f7ab70b8ebdc477684e808806bec9
+ parent_ids:
+ - c48d83c55b0268334a4ae4b528bf32de5857f2df
+ message: |
+ Adds LICENSE file to tensorflow-serving-api python package.
+
+ It is recommended to include LICENSE file in the package.[1] But tensorflow-serving-api doesn't have one in it.
+
+ We need LICENSE file and recent versions of `wheel` will automatically pickup LICENSE file in local directory.
+
+ [1] https://packaging.python.org/tutorials/packaging-projects/#creating-a-license
+
+ PiperOrigin-RevId: 343562364
+ (cherry picked from commit 2b276fc328e47c51e5c1d14d0e64ba2009773eca)
+ author: Chao Xie
+ committer: Chao Xie
+ time: 'Time { raw: git_time { time: 1605910557, offset: -480, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 01c2fb804161125bebda0b5880657ad046ab2da7
+ parent_ids:
+ - 1cceb78579f51a20d07447436180e55ef769774d
+ message: |
+ Handle range checking of floating point numbers correctly.
+
+ Underlying rapidjson::IsLosslessFloat() does not work correctly
+ (e.g. IsLosslessFloat(0.2) returns false!). We now split the
+ range check into two parts: one to check if a integral value
+ can fit in float/double without loss and other part to do usual
+ decimal compare against the defined limits. The latter is used
+ for non-integer values.
+
+ Fixes https://github.com/tensorflow/serving/issues/1136
+
+ PiperOrigin-RevId: 217166796
+ author: awk
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1539624903, offset: -420, sign: 45 } }'
+ target:
+ id: 02a6fc10216aed5644badac31f35cef3243688fa
+ parent_ids:
+ - 7c9a8f6e46227d0f7e74d489d91f169ce86bc0af
+ message: |
+ Handle range checking of floating point numbers correctly.
+
+ Underlying rapidjson::IsLosslessFloat() does not work correctly
+ (e.g. IsLosslessFloat(0.2) returns false!). We now split the
+ range check into two parts: one to check if a integral value
+ can fit in float/double without loss and other part to do usual
+ decimal compare against the defined limits. The latter is used
+ for non-integer values.
+
+ Fixes https://github.com/tensorflow/serving/issues/1136
+
+ PiperOrigin-RevId: 217166796
+ (cherry picked from commit 01c2fb804161125bebda0b5880657ad046ab2da7)
+ author: awk
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1540318779, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 140bbe7d4f6440449b61b360f227da6851b6332b
+ parent_ids:
+ - 7a2fecf1695cfb4fc743adbde0be35c2dd31e82e
+ message: |
+ Fix the bug running get-pip.py on python3.6.
+
+ PiperOrigin-RevId: 425544723
+ author: Sungsoon Cho
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1643700923, offset: -480, sign: 45 } }'
+ target:
+ id: cc66d958ded8aaaa568dbf4aedd6d0a2d2ca19c9
+ parent_ids:
+ - d69e89280c94d986e6cfd51e395b694b1a3afd14
+ message: |
+ Fix the bug running get-pip.py on python3.6.
+
+ PiperOrigin-RevId: 425544723
+ (cherry picked from commit 140bbe7d4f6440449b61b360f227da6851b6332b)
+ author: Sungsoon Cho
+ committer: RaviTeja Gorijala
+ time: 'Time { raw: git_time { time: 1644633204, offset: 0, sign: 43 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: fc8c5301125903a3e2ddc8b743f78f0d539bf61b
+ parent_ids:
+ - 2a3f866d21a2883b4a25fb7153b9847bcc9c39ef
+ message: |
+ Keep pypi package from overwriting TF package
+
+ PiperOrigin-RevId: 208718607
+ author: gvasudevan
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1534283662, offset: -420, sign: 45 } }'
+ target:
+ id: f66b9fda721008f06eb0739eba1491220136647f
+ parent_ids:
+ - 7fb55e4aaf0a1caf3d0726b744fa351ff4289555
+ message: |
+ Keep pypi package from overwriting TF package
+
+ PiperOrigin-RevId: 208718607
+ (cherry picked from commit fc8c5301125903a3e2ddc8b743f78f0d539bf61b)
+ author: gvasudevan
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1534284820, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: f92ac94bf5d597582065198e9ff50e6eeb50c078
+ parent_ids:
+ - 5fb57805b9987d1727c7326718d2c0c2bcfc7be1
+ message: |
+ Make Internal Change
+
+ PiperOrigin-RevId: 355546760
+ author: Chao Xie
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1612416042, offset: -480, sign: 45 } }'
+ target:
+ id: 644baeb482741e96d2ca0a5acdc2d7d2ab038710
+ parent_ids:
+ - 8300bd1e8878b7fd8b6cbf604d7feef45eb42ab7
+ message: |
+ Make Internal Change
+
+ PiperOrigin-RevId: 355546760
+ (cherry picked from commit f92ac94bf5d597582065198e9ff50e6eeb50c078)
+ author: Chao Xie
+ committer: Chao Xie
+ time: 'Time { raw: git_time { time: 1612467092, offset: -480, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 52ff24de9a0da84aba6065ca41c9fc060a301391
+ parent_ids:
+ - ba1539e3afa14784345e233f0660b07a8536e453
+ message: |
+ Add GPU serving Docker image, change source of binary
+
+ PiperOrigin-RevId: 206344761
+ author: gvasudevan
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1532715585, offset: -420, sign: 45 } }'
+ target:
+ id: 4383edee344026a8d5a111344c9cce8b426fce01
+ parent_ids:
+ - f7d69e1430048e71d7b5b523bddd83cd379af967
+ message: |
+ Add GPU serving Docker image, change source of binary
+
+ PiperOrigin-RevId: 206344761
+ (cherry picked from commit 52ff24de9a0da84aba6065ca41c9fc060a301391)
+ author: gvasudevan
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1533156883, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 74ea413db4407c1affe2b9fa69dc53ecdba61fa6
+ parent_ids:
+ - baab6180231009e9ebd86d5d0df301ce360e445e
+ message: |
+ Install cuda-nvrtc 10.1 into release tf serving gpu docker image.
+
+ PiperOrigin-RevId: 314861537
+ author: Haiming Bao
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1591331416, offset: -420, sign: 45 } }'
+ target:
+ id: 9b74939d6bd45486a3e10168f9863a33e6a488eb
+ parent_ids:
+ - 997223c8329a17df4308d96d15d67eeda08dc9a9
+ message: |
+ Install cuda-nvrtc 10.1 into release tf serving gpu docker image.
+
+ PiperOrigin-RevId: 314861537
+ (cherry picked from commit 74ea413db4407c1affe2b9fa69dc53ecdba61fa6)
+ author: Haiming Bao
+ committer: Haiming Bao
+ time: 'Time { raw: git_time { time: 1591379545, offset: -420, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 012e0b992d4b6ff003e0bc02226681ae526c9059
+ parent_ids:
+ - b153d43f956a468bf6a72ca6bd708cdb257f2d08
+ message: |
+ Remove old bazel workarounds
+
+ PiperOrigin-RevId: 205460242
+ author: gvasudevan
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1532124413, offset: -420, sign: 45 } }'
+ target:
+ id: 79f621daa9642f011a8234a55cb7f9252f89e45a
+ parent_ids:
+ - 58dee83387647bf1b144b3114292edeab0ac5b59
+ message: |
+ Remove old bazel workarounds
+
+ PiperOrigin-RevId: 205460242
+ (cherry picked from commit 012e0b992d4b6ff003e0bc02226681ae526c9059)
+ author: gvasudevan
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1533156818, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: a09b6e7850f47121df0b9df01e720ea2b8dde331
+ parent_ids:
+ - 6169bd7d3e27d6b04ee871138815e6c150a81059
+ message: |
+ Update Dockerfile.devel* with py3.7 installed.
+
+ PiperOrigin-RevId: 403429336
+ author: Sanjay Kumar Chotakur
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1634323588, offset: -420, sign: 45 } }'
+ target:
+ id: 498196b1869d84e2f0c5a4a206545084916d2b0a
+ parent_ids:
+ - 1fc1b44105a329294c4552c6d2c83857e560daf0
+ message: |
+ Update Dockerfile.devel* with py3.7 installed.
+
+ PiperOrigin-RevId: 403429336
+ (cherry picked from commit a09b6e7850f47121df0b9df01e720ea2b8dde331)
+ author: Sanjay Kumar Chotakur
+ committer: jay90099
+ time: 'Time { raw: git_time { time: 1634324862, offset: -420, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 01ea36b337073ed3e6949d078c7e742373321d70
+ parent_ids:
+ - 3fdc9d312c1ab5a62d1ceacdfc435a6789582be6
+ message: |
+ Minor documentation updates and fix docker gpu build
+ Fixes #987
+
+ PiperOrigin-RevId: 204508857
+ author: gvasudevan
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1531509188, offset: -420, sign: 45 } }'
+ target:
+ id: 58dee83387647bf1b144b3114292edeab0ac5b59
+ parent_ids:
+ - d90e0ae0dfab4886da4fe8b519c97418afb88f9b
+ message: |
+ Minor documentation updates and fix docker gpu build
+ Fixes #987
+
+ PiperOrigin-RevId: 204508857
+ (cherry picked from commit 01ea36b337073ed3e6949d078c7e742373321d70)
+ author: gvasudevan
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1533156805, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: d8555724ed54f3102952f9eca5a7d2b695899e20
+ parent_ids:
+ - cda26f6065753167ac83e3b1aad7485d3d1d6db0
+ message: |
+ Upgrade to ubuntu20.04 for docker images, which defaults to gcc-9.
+
+ PiperOrigin-RevId: 488422181
+ author: Dero Gharibian
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1668454092, offset: -480, sign: 45 } }'
+ target:
+ id: 32631bc7a524dec7b38c5671ea181961f7a3b72a
+ parent_ids:
+ - 4a824caf4cb63f68071c3cdb20247612f58ed910
+ message: |
+ Upgrade to ubuntu20.04 for docker images, which defaults to gcc-9.
+
+ PiperOrigin-RevId: 488422181
+ (cherry picked from commit d8555724ed54f3102952f9eca5a7d2b695899e20)
+ author: Dero Gharibian
+ committer: Shawn Lu
+ time: 'Time { raw: git_time { time: 1680035108, offset: -420, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 64469a0da89e314680509df21eb8b2f7efd91060
+ parent_ids:
+ - 7105d7affbe752e9d577082d564617fa9b5725a6
+ message: |
+ add flags to config max_num_load_retries and load_retry_interval_micros
+ author: Yu Zheng
+ committer: Yu Zheng
+ time: 'Time { raw: git_time { time: 1537377866, offset: -240, sign: 45 } }'
+ target:
+ id: dc8d417c884d5af0d9a25f6a14d954d96756fb2a
+ parent_ids:
+ - a278817d0f826030fe3e47110ef1d970340b0323
+ message: |
+ add flags to config max_num_load_retries and load_retry_interval_micros
+
+ (cherry picked from commit 64469a0da89e314680509df21eb8b2f7efd91060)
+ author: Yu Zheng
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1538596178, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 140bbe7d4f6440449b61b360f227da6851b6332b
+ parent_ids:
+ - 7a2fecf1695cfb4fc743adbde0be35c2dd31e82e
+ message: |
+ Fix the bug running get-pip.py on python3.6.
+
+ PiperOrigin-RevId: 425544723
+ author: Sungsoon Cho
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1643700923, offset: -480, sign: 45 } }'
+ target:
+ id: 2202d1183c44b68b0f142bce774f6e1e92c897a9
+ parent_ids:
+ - 0e8f0cd5932e8b8c435938d7b0713647c333fe36
+ message: |
+ Fix the bug running get-pip.py on python3.6.
+
+ PiperOrigin-RevId: 425544723
+ (cherry picked from commit 140bbe7d4f6440449b61b360f227da6851b6332b)
+ author: Sungsoon Cho
+ committer: RaviTeja Gorijala
+ time: 'Time { raw: git_time { time: 1644368692, offset: 0, sign: 43 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: c1ce0752f1076bd6f92e1af5f73e3a3c552f4691
+ parent_ids:
+ - 6ad81047a282f0e67ceebe9e25d7f0201e636a84
+ message: |
+ Fix broken GetModelMetadata request processing.
+
+ Fixes #1612
+
+ PiperOrigin-RevId: 312723939
+ author: Abhijit Karmarkar
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1590091029, offset: -420, sign: 45 } }'
+ target:
+ id: 55c40374b548b89e8de6d899ef2b0b355c0fa9e5
+ parent_ids:
+ - dae2bc6bcb622055bcf86f2f2b464d4950deff9f
+ message: |
+ Fix broken GetModelMetadata request processing.
+
+ Fixes #1612
+
+ PiperOrigin-RevId: 312723939
+ (cherry picked from commit c1ce0752f1076bd6f92e1af5f73e3a3c552f4691)
+ author: Abhijit Karmarkar
+ committer: netfs
+ time: 'Time { raw: git_time { time: 1590093828, offset: -420, sign: 45 } }'
+ is_trivial: false
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 140bbe7d4f6440449b61b360f227da6851b6332b
+ parent_ids:
+ - 7a2fecf1695cfb4fc743adbde0be35c2dd31e82e
+ message: |
+ Fix the bug running get-pip.py on python3.6.
+
+ PiperOrigin-RevId: 425544723
+ author: Sungsoon Cho
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1643700923, offset: -480, sign: 45 } }'
+ target:
+ id: 34f4d3c932d5c8785a84bde965db5d8cc15d6ce0
+ parent_ids:
+ - fd5650a50f9287eab0d39f6b8df9285e8671b3ce
+ message: |
+ Fix the bug running get-pip.py on python3.6.
+
+ PiperOrigin-RevId: 425544723
+ (cherry picked from commit 140bbe7d4f6440449b61b360f227da6851b6332b)
+ author: Sungsoon Cho
+ committer: RaviTeja Gorijala
+ time: 'Time { raw: git_time { time: 1644428421, offset: 0, sign: 43 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 48b71603188701bcfcba24fc3fc2ba86f15f2a0b
+ parent_ids:
+ - df5ad1540993bda08303436f9b72d8b2547ff1e3
+ message: |
+ Update to cuDNN 7.2 in Docker images
+
+ PiperOrigin-RevId: 215313756
+ author: gvasudevan
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1538441397, offset: -420, sign: 45 } }'
+ target:
+ id: 62e06f742a8adb6719ac6017dc4be7882d3289bf
+ parent_ids:
+ - dceb6e4e3854dd1fc5ff17dc32ee37969c3f7f29
+ message: |
+ Update to cuDNN 7.2 in Docker images
+
+ PiperOrigin-RevId: 215313756
+ (cherry picked from commit 48b71603188701bcfcba24fc3fc2ba86f15f2a0b)
+ author: gvasudevan
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1538596178, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 5b78ebf5ecb123574d7414822088ce5998b6b0f8
+ parent_ids:
+ - fb7c5defe70a5f454809dc46a947fd470294b67d
+ message: |
+ Add config, sources
+ author: ynqa
+ committer: ynqa
+ time: 'Time { raw: git_time { time: 1531934960, offset: 540, sign: 43 } }'
+ target:
+ id: f34e8440208629f94a41ca08d0b9cbee2a607d01
+ parent_ids:
+ - af72316214f857f50bdf62dac36f79a6659bfeff
+ message: |
+ Add config, sources
+
+ (cherry picked from commit 5b78ebf5ecb123574d7414822088ce5998b6b0f8)
+ author: ynqa
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1533156836, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: d6914ba17ff2557ad91809807d61699db18255cd
+ parent_ids:
+ - 1a18b724dd24a1bf325182e423efe85cc19db184
+ message: |
+ Accept integers in input requests where float/doubles are allowed,
+ converting them to corresponding decimal type. The conversion fails
+ (and so does the request) if the integer is too big to fit in the
+ decimal type (and incurring a precision loss).
+
+ PiperOrigin-RevId: 215515883
+ author: awk
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1538545554, offset: -420, sign: 45 } }'
+ target:
+ id: bd3c1a0a4e268fe2ceffb9ae59655e252c3be412
+ parent_ids:
+ - 1ac5f399de11f7abc1e0e114c36e5154dbd012e0
+ message: |
+ Accept integers in input requests where float/doubles are allowed,
+ converting them to corresponding decimal type. The conversion fails
+ (and so does the request) if the integer is too big to fit in the
+ decimal type (and incurring a precision loss).
+
+ PiperOrigin-RevId: 215515883
+ (cherry picked from commit d6914ba17ff2557ad91809807d61699db18255cd)
+ author: awk
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1538596178, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 46694d03ef9287d72f856b2a4a159381ff645815
+ parent_ids:
+ - 134361f9c9d0fe83ecfcffa0447d5f70a37c3cc2
+ message: |
+ Fix broken GPU build by add TF cuda options:
+
+ https://github.com/tensorflow/tensorflow/blob/aa44812e3e40b1c95586466bc177b07525b787ea/.bazelrc#L227
+
+ to TF Serving. This causes TF sources to be built with correct
+ options (bazel options are not picked from relevant dependent
+ repo (TF in this case), when building code from that repo).
+
+ PiperOrigin-RevId: 369022405
+ author: Abhijit Karmarkar
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1618682627, offset: -420, sign: 45 } }'
+ target:
+ id: 05377a99a61217976cb4ddd2ea2c7f1ce71ae0eb
+ parent_ids:
+ - f144361e527dcbebd6a97dca244412581d24e43c
+ message: |
+ Fix broken GPU build by add TF cuda options:
+
+ https://github.com/tensorflow/tensorflow/blob/aa44812e3e40b1c95586466bc177b07525b787ea/.bazelrc#L227
+
+ to TF Serving. This causes TF sources to be built with correct
+ options (bazel options are not picked from relevant dependent
+ repo (TF in this case), when building code from that repo).
+
+ PiperOrigin-RevId: 369022405
+ (cherry picked from commit 46694d03ef9287d72f856b2a4a159381ff645815)
+ author: Abhijit Karmarkar
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1618696951, offset: -420, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 5bd88e01b357fd874b00b13726e45d4c03a09959
+ parent_ids:
+ - f1e33715403d2674d1a968181275c5b4db2f6338
+ message: |
+ Internal change
+
+ PiperOrigin-RevId: 207179369
+ author: gvasudevan
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1533250004, offset: -420, sign: 45 } }'
+ target:
+ id: 5b16f90875e54107d1355eafe32694f59cd266e8
+ parent_ids:
+ - 08edcf95c6aaebcc4190fcc82a973be942ed5a98
+ message: |
+ Internal change
+
+ PiperOrigin-RevId: 207179369
+ (cherry picked from commit 5bd88e01b357fd874b00b13726e45d4c03a09959)
+ author: gvasudevan
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1533759581, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 97978adfc4fa982d2448a9fc358dffe7a2945c32
+ parent_ids:
+ - aee599e833ba2a6b0b2994985f66e9ff68dacab9
+ message: "Add `-N` to useradd. \n\nFixes #1137"
+ author: vfdev
+ committer: GitHub
+ time: 'Time { raw: git_time { time: 1539327159, offset: 120, sign: 43 } }'
+ target:
+ id: 7c9a8f6e46227d0f7e74d489d91f169ce86bc0af
+ parent_ids:
+ - a3eef519d1f6ca843daafac94e1c68ac9cece69c
+ message: "Add `-N` to useradd. \n\nFixes #1137\n\n(cherry picked from commit 97978adfc4fa982d2448a9fc358dffe7a2945c32)\n"
+ author: vfdev
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1540318754, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 140bbe7d4f6440449b61b360f227da6851b6332b
+ parent_ids:
+ - 7a2fecf1695cfb4fc743adbde0be35c2dd31e82e
+ message: |
+ Fix the bug running get-pip.py on python3.6.
+
+ PiperOrigin-RevId: 425544723
+ author: Sungsoon Cho
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1643700923, offset: -480, sign: 45 } }'
+ target:
+ id: 6f38402a82225b13713dbe81ab5ca2f325e6efaf
+ parent_ids:
+ - 55f8331c8e4f614fc08378231ac80a3cdd90e232
+ message: |
+ Fix the bug running get-pip.py on python3.6.
+
+ PiperOrigin-RevId: 425544723
+ (cherry picked from commit 140bbe7d4f6440449b61b360f227da6851b6332b)
+ author: Sungsoon Cho
+ committer: RaviTeja Gorijala
+ time: 'Time { raw: git_time { time: 1644368181, offset: 0, sign: 43 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 5adb5ed5c061cd48ae2f448eb83c64c1b165d0fd
+ parent_ids:
+ - b8564c0a6a9c3145b555d8be25823f40d3322c09
+ message: |
+ Update docker instructions to simplify process using Docker Hub
+
+ PiperOrigin-RevId: 203004750
+ author: gvasudevan
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1530665082, offset: -420, sign: 45 } }'
+ target:
+ id: 26539333978b5e7ec95a32357a2f720c6438d58d
+ parent_ids:
+ - 0d219b72c01d45af8c5d8079950b09df839d9e15
+ message: |
+ Update docker instructions to simplify process using Docker Hub
+
+ PiperOrigin-RevId: 203004750
+ (cherry picked from commit 5adb5ed5c061cd48ae2f448eb83c64c1b165d0fd)
+ author: gvasudevan
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1533156555, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 9186b1a465211fc7f334025a922914949c5e2471
+ parent_ids:
+ - 42afdc98579e43522a66682713bcf3dfaedddcb9
+ message: |
+ Set cuda compute capabilities for `cuda` build config.
+
+ PiperOrigin-RevId: 325552145
+ author: Abhijit Karmarkar
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1596854221, offset: -420, sign: 45 } }'
+ target:
+ id: 731a34f0b3f43a6f7a8da85655d3a4a5c72d066a
+ parent_ids:
+ - f57632facd4f74644b36e81cadac5bf4fee43424
+ message: |
+ Set cuda compute capabilities for `cuda` build config.
+
+ PiperOrigin-RevId: 325552145
+ (cherry picked from commit 9186b1a465211fc7f334025a922914949c5e2471)
+ author: Abhijit Karmarkar
+ committer: netfs
+ time: 'Time { raw: git_time { time: 1597085969, offset: -420, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: a40cf2176dbdc0454fa9c32e7ab3c0d6da0c738e
+ parent_ids:
+ - 6bb32ee0ced800c9afa155594335719df1b1a830
+ message: |
+ Install TensorRT in TF Serving's docker build.
+
+ PiperOrigin-RevId: 215241014
+ author: laigd
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1538416167, offset: -420, sign: 45 } }'
+ target:
+ id: dceb6e4e3854dd1fc5ff17dc32ee37969c3f7f29
+ parent_ids:
+ - defd37d1383739335983ebf00dd0899d0c0d3a2a
+ message: |
+ Install TensorRT in TF Serving's docker build.
+
+ PiperOrigin-RevId: 215241014
+ (cherry picked from commit a40cf2176dbdc0454fa9c32e7ab3c0d6da0c738e)
+ author: laigd
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1538596178, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 4cbac38c307ea11527d0e45a3b18fd41f1b67601
+ parent_ids:
+ - ce382aeb104b5ed61e9ee8a1c452fe32be357dd0
+ message: |
+ Update docker files
+
+ PiperOrigin-RevId: 206050867
+ author: gvasudevan
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1532552656, offset: -420, sign: 45 } }'
+ target:
+ id: f7d69e1430048e71d7b5b523bddd83cd379af967
+ parent_ids:
+ - 71127a782ab0113a4ec9776c29e7857c31fa4123
+ message: |
+ Update docker files
+
+ PiperOrigin-RevId: 206050867
+ (cherry picked from commit 4cbac38c307ea11527d0e45a3b18fd41f1b67601)
+ author: gvasudevan
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1533156883, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: b2d2b87d67ec065ae1e4df4ca5b36c151d6457f6
+ parent_ids:
+ - 153e75ab838c252b3a8f66824754dd4f30519601
+ message: |
+ Update docker builds
+
+ PiperOrigin-RevId: 208535314
+ author: gvasudevan
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1534192897, offset: -420, sign: 45 } }'
+ target:
+ id: 129fc505b7d053f8c5e51f80bbac015493cc3bc2
+ parent_ids:
+ - f344c92e50189dc4d336c21086992f98e04e6e9f
+ message: |
+ Update docker builds
+
+ PiperOrigin-RevId: 208535314
+ (cherry picked from commit b2d2b87d67ec065ae1e4df4ca5b36c151d6457f6)
+ author: gvasudevan
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1534201258, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: aed1ae7e406d511e648709239411fcd0681b5ac0
+ parent_ids:
+ - 5a6936324059fcdfedeb2ac9f5f1d53544bbc8ef
+ message: |
+ Update docker images
+
+ PiperOrigin-RevId: 208891157
+ author: gvasudevan
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1534371083, offset: -420, sign: 45 } }'
+ target:
+ id: 17bec134e3e62a2e97cb5211fa630a7a81acf5f9
+ parent_ids:
+ - 274e97a4b473c4ecbfb7da670dd1a0ad07d2b836
+ message: |
+ Update docker images
+
+ PiperOrigin-RevId: 208891157
+ (cherry picked from commit aed1ae7e406d511e648709239411fcd0681b5ac0)
+ author: gvasudevan
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1534438551, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 68d92ff3fdca0641f465cc3ba3858a619c8b82a6
+ parent_ids:
+ - 77807bf783a3a18a68c0260b27444c2c93a6dc3d
+ message: |
+ Update Dockerfile.devel* with py3.8 installed.
+
+ PiperOrigin-RevId: 519799120
+ author: Shawn Lu
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1679945804, offset: -420, sign: 45 } }'
+ target:
+ id: c688ac1d81e02c80f16a7f8fed241b2180a76170
+ parent_ids:
+ - 4a824caf4cb63f68071c3cdb20247612f58ed910
+ message: |
+ Update Dockerfile.devel* with py3.8 installed.
+
+ PiperOrigin-RevId: 519799120
+ (cherry picked from commit 68d92ff3fdca0641f465cc3ba3858a619c8b82a6)
+ author: Shawn Lu
+ committer: Shawn Lu
+ time: 'Time { raw: git_time { time: 1680040207, offset: -420, sign: 45 } }'
+ is_trivial: false
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: ab1372b0a2537cde1d4597f7468dce9bcbdc0ee5
+ parent_ids:
+ - 110845a40a6670067aa7cc24ed889ea829999063
+ message: |
+ o Restructure test to start one model server for every unique
+ variation of model server flags (model name, path and other
+ params). This results in majority of the tests (all predict/
+ classify/regress over grpc and rest) sharing the same server
+ and executing faster. This change shaves off ~15-20 seconds
+ in overall test run.
+
+ o Add retry for REST API calls.
+
+ PiperOrigin-RevId: 207606701
+ author: awk
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1533590364, offset: -420, sign: 45 } }'
+ target:
+ id: c4f4bbe5484779ed277d240c73c32045d85e719f
+ parent_ids:
+ - b5a84e39c48f9ca2724344dcda0f706532285696
+ message: |
+ o Restructure test to start one model server for every unique
+ variation of model server flags (model name, path and other
+ params). This results in majority of the tests (all predict/
+ classify/regress over grpc and rest) sharing the same server
+ and executing faster. This change shaves off ~15-20 seconds
+ in overall test run.
+
+ o Add retry for REST API calls.
+
+ PiperOrigin-RevId: 207606701
+ (cherry picked from commit ab1372b0a2537cde1d4597f7468dce9bcbdc0ee5)
+ author: awk
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1533759581, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 1bcc01132df0cc835a9d3388ee6fce65d2f2fbe9
+ parent_ids:
+ - 101730f8ea8218955a02e0474d1d7e643cba1263
+ message: |
+ Internal change
+
+ PiperOrigin-RevId: 206864789
+ author: gvasudevan
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1533087941, offset: -420, sign: 45 } }'
+ target:
+ id: 3d2db30e3b413764c8d3fba04ea5e3a08261d4ee
+ parent_ids:
+ - 10a67ef61d44635bcc17341dac970107e8f55495
+ message: |
+ Internal change
+
+ PiperOrigin-RevId: 206864789
+ (cherry picked from commit 1bcc01132df0cc835a9d3388ee6fce65d2f2fbe9)
+ author: gvasudevan
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1533156883, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 1bcc01132df0cc835a9d3388ee6fce65d2f2fbe9
+ parent_ids:
+ - 101730f8ea8218955a02e0474d1d7e643cba1263
+ message: |
+ Internal change
+
+ PiperOrigin-RevId: 206864789
+ author: gvasudevan
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1533087941, offset: -420, sign: 45 } }'
+ target:
+ id: 08edcf95c6aaebcc4190fcc82a973be942ed5a98
+ parent_ids:
+ - e16a67da804053d78bdcc57b6b7fdba2dc1a017f
+ message: |
+ Internal change
+
+ PiperOrigin-RevId: 206864789
+ (cherry picked from commit 1bcc01132df0cc835a9d3388ee6fce65d2f2fbe9)
+ author: gvasudevan
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1533759581, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 07f9ba50ebf75991ef27541c8a318de76886c5f6
+ parent_ids:
+ - 793304c0e9d6dd7d3d031e21c32aeea3d7336a03
+ message: |
+ Update Dockerfile.devel* with py3.9 installed.
+
+ PiperOrigin-RevId: 559891667
+ author: Shawn Lu
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1692916877, offset: -420, sign: 45 } }'
+ target:
+ id: 89e76e785ebe458264e6a40b76b8258e32377103
+ parent_ids:
+ - f620b474db18ecd9dbcabcaed0d541fc7f275c40
+ message: "Update Dockerfile.devel* with py3.9 installed. (#2178)\n\nPiperOrigin-RevId: 559891667\r\n(cherry picked from commit 07f9ba50ebf75991ef27541c8a318de76886c5f6)\r\n\r\nCo-authored-by: Shawn Lu "
+ author: Raviteja Gorijala <36429068+rtg0795@users.noreply.github.com>
+ committer: GitHub
+ time: 'Time { raw: git_time { time: 1692993729, offset: -420, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: ebbbc87b925008da25bfb53f8fb0d8398c6767a7
+ parent_ids:
+ - c304f2ca35894fe7cbb6905d987a9f013987abda
+ message: |
+ Enable download of TF Serving sources at arbitrary commit for GPU/MKL docker images.
+
+ PiperOrigin-RevId: 345132448
+ author: Abhijit Karmarkar
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1606872119, offset: -480, sign: 45 } }'
+ target:
+ id: 4725d9095919c64bb3f6c60b55bfbb103fe6a52e
+ parent_ids:
+ - ac3a2eb190bbe1dd9054391b293a2172a8b07bec
+ message: |
+ Enable download of TF Serving sources at arbitrary commit for GPU/MKL docker images.
+
+ PiperOrigin-RevId: 345132448
+ (cherry picked from commit ebbbc87b925008da25bfb53f8fb0d8398c6767a7)
+ author: Abhijit Karmarkar
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1613521210, offset: -480, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 535821151b9ea03464050e6f19690ece5a26be81
+ parent_ids:
+ - 1b62e2e5d1800a0e1ce856e96ef29a5e80e0962b
+ message: |
+ Internal change
+
+ PiperOrigin-RevId: 207300092
+ author: gvasudevan
+ committer: TensorFlower Gardener
+ time: 'Time { raw: git_time { time: 1533322101, offset: -420, sign: 45 } }'
+ target:
+ id: b5a84e39c48f9ca2724344dcda0f706532285696
+ parent_ids:
+ - 5b16f90875e54107d1355eafe32694f59cd266e8
+ message: |
+ Internal change
+
+ PiperOrigin-RevId: 207300092
+ (cherry picked from commit 535821151b9ea03464050e6f19690ece5a26be81)
+ author: gvasudevan
+ committer: Abhijit Karmarkar
+ time: 'Time { raw: git_time { time: 1533759581, offset: -240, sign: 45 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 7359725873a4f5356893309b9075da09b1fb23f2
+ parent_ids:
+ - 10ef8d4cebf2ee2cf9a77066208f1ada2016336e
+ message: |
+ Updates the test model for TF Text v2.6.0.
+
+ PiperOrigin-RevId: 427871547
+ author: Robert Neale
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1644539347, offset: -480, sign: 45 } }'
+ target:
+ id: 86e35d7c52259d6ab1ef2a34ccc98fba998d28a2
+ parent_ids:
+ - 462a36f9d606d6959683a0070eecb38ae207865b
+ message: |
+ Updates the test model for TF Text v2.6.0.
+
+ PiperOrigin-RevId: 427871547
+ (cherry picked from commit 7359725873a4f5356893309b9075da09b1fb23f2)
+ author: Robert Neale
+ committer: RaviTeja Gorijala
+ time: 'Time { raw: git_time { time: 1644618708, offset: 0, sign: 43 } }'
+ is_trivial: true
+ - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 4aa0cfc24098000163fdfe270c4eb205e98790b1
+ parent_ids:
+ - 5a3c268d3fe508466b8ccc7c7785032a1f1b5c1d
+ message: |
+ Remove hyphen from version numbers to conform with PIP.
+
+ PiperOrigin-RevId: 250520004
+ author: Abhijit Karmarkar
+ committer: tensorflow-copybara
+ time: 'Time { raw: git_time { time: 1559151471, offset: -420, sign: 45 } }'
+ target:
+ id: 7074db64efdfb2d0cd9250aa1854717778933307
+ parent_ids:
+ - d1ff44989d50c3e61cb10f68cd3a9b3aab67323b
+ message: |
+ Remove hyphen from version numbers to conform with PIP.
+
+ PiperOrigin-RevId: 250520004
+ (cherry picked from commit 4aa0cfc24098000163fdfe270c4eb205e98790b1)
+ author: Abhijit Karmarkar
+ committer: netfs
+ time: 'Time { raw: git_time { time: 1559153066, offset: -420, sign: 45 } }'
+ is_trivial: false
diff --git a/dataset/mined-cherries-verification/C_yshui_picom.yaml b/dataset/mined-cherries-verification/C_yshui_picom.yaml
new file mode 100644
index 00000000..63aeba2f
--- /dev/null
+++ b/dataset/mined-cherries-verification/C_yshui_picom.yaml
@@ -0,0 +1,736 @@
+- language: C
+ total_number_of_commits: '2559'
+ total_number_of_branches: '47'
+ total_number_of_committers: '78'
+ total_number_of_results: '22'
+ repo_name: yshui/picom
+- - search_method: MessageScan
+ cherry_and_target:
+ cherry:
+ id: 642a43acbb5a92f00c31bd7487c07fab59ab18a9
+ parent_ids:
+ - 755996a42c88483b452e7b9133c8b69c808d3b7a
+ message: |
+ Update README.md and CHANGELOG.md
+
+ Signed-off-by: Yuxuan Shui