text:
undefined reference to `filament::backend::HandleAllocator<16ul, 64ul, 208ul>::~HandleAllocator()'

This looks like my FINAL ERROR message ???
[ 75%] Linking CXX executable test_filameshio
/usr/bin/cmake -E cmake_link_script CMakeFiles/test_filameshio.dir/link.txt --verbose=1
/usr/bin/c++ -std=c++20 -I/usr/local/filament/include -L/usr/local/filament/lib -O3 -DNDEBUG CMakeFiles/test_filameshio.dir/tests/test_filamesh.cpp.o -o test_filameshio  -Wl,-rpath,....../filament/libs/filameshio/build -lfilament -lbackend -lfilabridge -lfilaflat -libl libfilameshio.so -lutils -lmeshoptimizer -lgtest
/usr/bin/ld: /usr/local/filament/lib/libbackend.so: undefined reference to `filament::backend::HandleAllocator<16ul, 64ul, 208ul>::~HandleAllocator()'
/usr/bin/ld: /usr/local/filament/lib/libbackend.so: undefined reference to `filament::backend::HandleAllocator<16ul, 64ul, 208ul>::HandleAllocator(char const*, unsigned long)'
/usr/bin/ld: /usr/local/filament/lib/libbackend.so: undefined reference to `filament::backend::HandleAllocator<16ul, 64ul, 208ul>::deallocateHandleSlow(unsigned int, unsigned long)'
/usr/bin/ld: /usr/local/filament/lib/libbackend.so: undefined reference to `filament::backend::HandleAllocator<16ul, 64ul, 208ul>::handleToPointerSlow(unsigned int) const'
/usr/bin/ld: /usr/local/filament/lib/libbackend.so: undefined reference to `filament::backend::HandleAllocator<16ul, 64ul, 208ul>::allocateHandleSlow(unsigned long)'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/test_filameshio.dir/build.make:101: test_filameshio] Error 1
make[2]: Leaving directory '....../filament/libs/filameshio/build'
make[1]: *** [CMakeFiles/Makefile2:114: CMakeFiles/test_filameshio.dir/all] Error 2
make[1]: Leaving directory '....../filament/libs/filameshio/build'
make: *** [Makefile:139: all] Error 2

that's not an error we've seen, again it seems specific to your compiler or build situation.

source: gharchive/issue

repo: google/filament

license_type: permissive

license_source: github-api


text:
Example request for teacher-student / distillation style network training (e.g. BYOL, dino, etc.)

You would like to see a new example being implemented by the Flax core team or the community? Please let us know by filling the following template.
Description of the model to be implemented
teacher-student style network training (momentum update of student weights to teacher) which is widely used in self-supervised training
Dataset the model could be trained on
any dataset, e.g. ImageNet, cifar, etc.
Specific points to consider
Reference implementations in other frameworks
BYOL: https://github.com/deepmind/deepmind-research/tree/master/byol
dino: https://github.com/facebookresearch/dino

Thanks for filing this issue! We decided that for now, we want to focus on making our core library excellent, and we are not planning to add new examples to our repo. This may change in the future, but for now I am closing this issue.
We do encourage you to let us know (e.g., through Github Discussions) when you have written examples in your own repo, and we gladly link to it!
@andsteing FYI

repo: google/flax

license_source: bigquery


text:
Fix the issue that Payload isn't correctly passed to an Adapter.

The issue was caused because FlexboxLayoutManager returned a scrapped
view holder when it should be returned through the RecyclerView (it's
also returned from the scrapped views, but additional procedures are
processed, such as passing the payload objects if any,
if returned through the RecyclerView).
Fixes #297

@thagikura : the fix works well ! Thanks. Do you consider to release an alpha 4 including this ?

Thanks! PTAL.

@stephanenicolas yes, I'm going to include this in the next release.

source: gharchive/pull-request

authors: stephanenicolas thagikura

repo: google/flexbox-layout


text:
Support deleting head branch of GitHub pull requests

add support for this new feature: https://help.github.com/en/articles/managing-the-automatic-deletion-of-branches

I might be blind but looking at the V3 Repositories API I cannot see this being part of it...

@stefansedich Yep! I have asked @GithubHelp on twitter. Will post a response when they reply

Confirmed by @githubhelp on twitter that this is not in the v3 or v4 API. They are going to check if its on the engineering teams roadmap.

Closing due to lack of support in the v3 API. Please reopen if it becomes supported.

@TomTucka Amigo, exists new news about this? I think that it could be pretty usefull if this feature is support for terraform!

authors: TomTucka cmardonespino gmlewis stefansedich

repo: google/go-github


text:
Support "truncated" field for Git tree in Git.GetTree

Per https://developer.github.com/v3/git/trees/, Git trees returned by the "GetTree" API call have a truncated field that indicates whether or not the entries in the returned tree were truncated:

If truncated is true, the number of items in the tree array exceeded our maximum limit. If you need to fetch more items, you can clone the repository and iterate over the Git data locally.

Currently, go-github does not have this field in its Tree object -- it would be nice to add it so that clients can determine whether or not the result they received was truncated.

For reference/testing, the following query returns a result with truncated: true:
curl -i https://api.github.com/repos/cdnjs/cdnjs/git/trees/4fdd3d5e39d562c6b4d19e2084adb35f97a955ef?recursive=1

The same query without the recursive=1 returns with truncated: false.


text:
Support expand Deployment Statuses API

Fixes #1035
Changes:

Add custom media type(application/vnd.github.flash-preview+json)
Add environment parameter to DeploymentStatusRequest struct

I signed it!

Thank you, @gauntface.
Merging.

Thank you, @urohit011 @gmlewis @gauntface 😄

authors: gmlewis unblee


text:
Having trouble with the Drive API quickstart

The code sample on the quickstart page for the Drive API (https://developers.google.com/drive/web/quickstart/quickstart-nodejs#step_1_enable_the_drive_api) seems deprecated.  I have tried to modify the oauth2 example (https://github.com/google/google-api-nodejs-client/blob/master/examples/oauth2.js) to work with the Drive API as suggested in the quickstart/migration examples (see below) but I am unable to get the example to write the "Test Document" file to my Drive.
var readline = require('readline');
var google = require('googleapis');

var OAuth2Client = google.auth.OAuth2;
var drive = google.drive('v2');

// Client ID and client secret are available at
// https://code.google.com/apis/console
var CLIENT_ID = '';
var CLIENT_SECRET = '';
var REDIRECT_URL = 'urn:ietf:wg:oauth:2.0:oob';

var oauth2Client = new OAuth2Client(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);

var rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

function getAccessToken(oauth2Client, callback) {
  // generate consent page url
  var url = oauth2Client.generateAuthUrl({
    access_type: 'offline', // will return a refresh token
    scope: 'https://www.googleapis.com/auth/drive.file' // can be a space-delimited string or an array of scopes
  });

  console.log('Visit the url: ', url);
  rl.question('Enter the code here:', function(code) {
    // request access token
    oauth2Client.getToken(code, function(err, tokens) {
      // set tokens to the client
      // TODO: tokens should be set by OAuth2 client.
      oauth2Client.setCredentials(tokens);
      callback();
    });
  });
}

// retrieve an access token
getAccessToken(oauth2Client, function() {
  drive.files.insert({
    resource: {
      title: 'Test Document',
      mimeType: 'text/plain'
    },
    media: {
      mimeType: 'text/plain',
      body: 'Hello World'
    }
  }, function(){
    console.log('Added document!');
  });
});

Use the JWT approach. MUCH easier and it works. I spent HOURS trying to wade through the limited and outdated docs. If you get stuck, hit me up and I'll see about sharing some code.

(Marking this as closed due to staleness - @zachheine feel free to reopen if this is still a problem for you. Thanks!)

authors: ace-n rainabba zachheine

repo: google/google-api-nodejs-client


text:
Add example of Sheet API v4

Added the example of Sheets API with google-auth latest library, check PR #471 .

Thank you for your feature request. This client library is currently in maintenance mode. We are fixing necessary bugs and adding essential features to ensure this library continues to meet your needs for accessing Google APIs. We have decided not to proceed with this enhancement. If you disagree, please feel free to re-open this issue and explain why you believe it is essential for users of this client library.

authors: Barathwaja mattwhisenhunt

repo: google/google-api-python-client


text:
Feature request: latency test

Some sort of latency exerciser would be handy.  Examples include "pointer trails" to see how far behind the touch input we get, and a big sliding box that tries to move with your finger.  For the latter I'm thinking of something like Google Maps but with just a simple texture instead of network tiles.
The goal is to have a test app that shows the benefits of DispSync and eglPresentationTimeANDROID.
Background: http://stackoverflow.com/questions/26317132/minimize-android-glsurfaceview-lag/

The reference above is caused by a bug in github x-ref procedure. Can you remove this false reference?

authors: alexcohn fadden

repo: google/grafika


text:
[Code health] Consolidate string resources

From @shobhitagarwal1612:

I also noticed that some of strings are duplicate (like add_feature_cancel and discard_multiple_choice_changes). Any particular reason for that? Also, would it be fine to use android's resource for common strings (android.R.string.cancel) ?
https://github.com/google/ground-android/pull/332#issue-367091582

I don't remember why we have these duplicate strings - consolidating and using default strings sounds good.

@dturner  is there any official guidance on whether to merge identical UI strings or not?
We didn't proceed with the linked PR because in some case we have what appear to be duplicate strings for different actions in different UI surfaces. I assuemd splitting strings semantically rather than literally is important because the same phrases may be worded differently in different languages. It also allows us to easily change the label for one UI element without changing others (e.g., "Add" => "Add feature" and "Add observation). Any thoughts on this?

Taking a look at the string resources in the IOsched app (which attempts to follow best practice) it looks like the following convention is used:

name 2-4 word semantic description of the string
translation_description describes what the string is used to communicate, where it is presented and any events which result in it being displayed. This presumably makes it easy for a translator.

It looks like you already have the text for translation_description in a comment above each string resource.
As for identical strings, I don't think we have any specific guidance. My gut feel is that having a single instance of <string name=cancel>Cancel</string> is better than having <string name=cancel_when_event1>Cancel</string> and <string name=cancel_when_event2>Cancel</string> because it makes the code more readable. i.e.
dialogBuilder.setNegativeButton(R.string.cancel, (dialog, which) -> {});

is more readable than
dialogBuilder.setNegativeButton(R.string.discard_multiple_choice_changes, (dialog, which) -> {});

In summary, I think removing the duplicates makes sense.

Ok, that sounds reasonable. Thanks for the input!
@shobhitagarwal1612 since you already did this, case to patch #346 and send a PR?

Sure. Thanks for the guidance.

authors: dturner gino-m shobhitagarwal1612

repo: google/ground-android


text:
Cleanup unused code in HomeScreenMapContainerViewModel

The flow _zoomThresholdCrossed isn't being used anywhere. It has been replaced with another flow already. So, it can be safely removed.

@gino-m  PTAL?

@gino-m gentle ping!


text:
Expose Build Device Parameters for Tiles

https://github.com/google/horologist/pull/218/files#r895885412

Adding in https://github.com/google/horologist/pull/235

authors: ataulm yschimke

repo: google/horologist


text:
Do not use a variable for looking up data.

Using a variable for the lookup causes a major performance issue, resulting in diffing times of up to 3x longer.
This change is included in the 0.5.1 tag.

Note that this won't cause a performance issue when using the closure compiler since it'll simply inline it anyways.
One question though. Why did you choose to stay with the bracket notation?
As far as I understand this will cause this variable not to be renamed by the closure compiler but why would that be favored?
Apart from that it LGTM.

One question though. Why did you choose to stay with the bracket notation?
As far as I understand this will cause this variable not to be renamed by the closure compiler but why would that be favored?

My thinking was that you could have another library that adds things to DOM nodes (which is not Closure compiled) and I wanted to make sure they would not conflict. Probably not a big deal in practice.

authors: mashedcode sparhami

repo: google/incremental-dom


text:
Add train example, travis, easier testing.

... more copying from the internal repository.

authors: matanlurey yjbanov

license: mit


text:
Remove assumption of partitioned loops from Flow

This PR removes the last remnants of distribution behavior from Flow.

The workload for a dispatch is now the entire iteration space of the operation.
This allows moving PartitionableLoopsInterface into Codegen. Consequently, no assumption is made about which loops are partitioned at the Flow level.
The TileAndDistributeToWorkgroups uses the PartitionableLoopsInterface to generate the region for number of workgroups to be consistent with the new way the workload is specified at Flow level.

I am working on fusing a reduction and an elementwise op into a single dispatch. In this case, the reduction and the elementwise ops have different loop range, e.g., [128, 12, 1] and [128, 128, 12]. So when this happens, I expect to see [128, 12, 1] as the workgroup counts.
In your code change (and also in the previous code), the workload is computed solely based on the root Operation. How can this be extended?

As discussed in the reduction fusion document, if we can treat the reduction workgroup count as the number of elements to reduce instead of 1, we may be able to keep using the root op to calculate the workgroup count. This seems to make more sense to me because it reflects the actual number of elements to handle.

Yeah, it is confusing to me when I interpret the meaning of "workload". If it does not deliver an important semantic at the flow IR level, can we simply remove it? Is it planned as a part of the cleaning?

Correct Mahesh! Conceptually the workload is a set of inputs to a function that is used to compute the workgroup count, and that function is extern at the flow level, actually defined per target device, and may not resolve to concrete values until far in the future at runtime.
This is because the final workgroup count is based on the workload, workgroup size, and other device properties (like shared memory size) - at the flow level we don't know workgroup size or those device properties and thus can't throw away any information we'd eventually need to compute the workgroup count based on them. We may also not be able to know those at compile time at all and have to emit the runtime code to factor in things - we'll be asking Vulkan for its maxComputeSharedMemorySize and subgroupSize and CUDA for cudaDevAttrMaxSharedMemoryPerBlock and cudaDevAttrMultiProcessorCount, etc. It's a bug today (for expediency/bringup/etc) that we aren't using this information and not a feature we want to build more assumptions around. We also need to deduplicate our dispatches more and it's also a bug today that the shapes of things are as static as they are - when things are working right even in cases where static shape information is available we'll instead want it to be dynamic per dispatch site even if any individual dispatch site has fully static information. The additional static information should provide optimization opportunities but isn't a requirement ("this dispatch is called with workload %foo, that is one of values [1, 8, 16]" or "this dispatch is called with workload %bar, that is always aligned to 128", etc).
Changes like this one help us move closer to that by decoupling the implicit assumptions and letting us specialize more dynamically later in the compilation pipeline. It's exciting watching these changes land and thanks for tackling this Mahesh :)

This appears to have broken the cuda build

test logs
 265/1094 Test  #258: iree/tests/e2e/xla_ops/check_cuda_graph_fft.mlir ...............................................................***Failed    1.59 sec
[==========] Running 2 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 2 tests from module
[ RUN      ] module.rfft_1d
/tmpfs/src/github/iree/runtime/src/iree/modules/check/module.cc:352: Failure
Failed
Expected near equality of these values. Contents does not match.
  lhs:
    17xf32=649.4 0.980785 -577.865 2.91014 591.893 -0.55557 -572.297 0.682816 630.4 0.0585271 -579.667 -1.11114 592.388 -0.249441 -586.364 0 647.4
  rhs:
    17xf32=666.846 0 -590.169 0 593.448 0 -579.529 0 629.954 0 -567.113 0 591.751 0 -583.189 0 630.846
/tmpfs/src/github/iree/runtime/src/iree/modules/check/module.cc:352: Failure
Failed
Expected near equality of these values. Contents does not match.
  lhs:
    17xf32=0 -0.19509 -16.8405 -1.9445 -10.2929 0.83147 19.7304 -3.43275 0.3 0.294236 -19.5466 -1.66294 10.7879 -0.166671 10.236 0 0
  rhs:
    17xf32=0 0 -23.9564 0 -10.2543 0 -6.14437 0 -10 0 3.86551 0 0.637674 0 52.4535 0 0
[  FAILED  ] module.rfft_1d, where GetParam() = 0 (811 ms)
[ RUN      ] module.rfft_2d
/tmpfs/src/github/iree/runtime/src/iree/modules/check/module.cc:352: Failure
Failed
Expected near equality of these values. Contents does not match.
  lhs:
    1x17xf32=[649.4 0.980785 -577.865 2.91014 591.893 -0.55557 -572.297 0.682816 630.4 0.0585271 -579.667 -1.11114 592.388 -0.249441 -586.364 0 647.4]
  rhs:
    1x17xf32=[666.846 0 -590.169 0 593.448 0 -579.529 0 629.954 0 -567.113 0 591.751 0 -583.189 0 630.846]
/tmpfs/src/github/iree/runtime/src/iree/modules/check/module.cc:352: Failure
Failed
Expected near equality of these values. Contents does not match.
  lhs:
    1x17xf32=[0 -0.19509 -16.8405 -1.9445 -10.2929 0.83147 19.7304 -3.43275 0.3 0.294236 -19.5466 -1.66294 10.7879 -0.166671 10.236 0 0]
  rhs:
    1x17xf32=[0 0 -23.9564 0 -10.2543 0 -6.14437 0 -10 0 3.86551 0 0.637674 0 52.4535 0 0]
[  FAILED  ] module.rfft_2d, where GetParam() = 1 (13 ms)
[----------] 2 tests from module (824 ms total)

[----------] Global test environment tear-down
[==========] 2 tests from 1 test suite ran. (824 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 2 tests, listed below:
[  FAILED  ] module.rfft_1d, where GetParam() = 0
[  FAILED  ] module.rfft_2d, where GetParam() = 1

313/1094 Test  #314: iree/tests/e2e/xla_ops/check_cuda_streams_fft.mlir .............................................................***Failed    0.94 sec
[==========] Running 2 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 2 tests from module
[ RUN      ] module.rfft_1d
/tmpfs/src/github/iree/runtime/src/iree/modules/check/module.cc:352: Failure
Failed
Expected near equality of these values. Contents does not match.
  lhs:
    17xf32=649.4 0.980785 -577.865 2.91014 591.893 -0.55557 -572.297 0.682816 630.4 0.0585271 -579.667 -1.11114 592.388 -0.249441 -586.364 0 647.4
  rhs:
    17xf32=666.846 0 -590.169 0 593.448 0 -579.529 0 629.954 0 -567.113 0 591.751 0 -583.189 0 630.846
/tmpfs/src/github/iree/runtime/src/iree/modules/check/module.cc:352: Failure
Failed
Expected near equality of these values. Contents does not match.
  lhs:
    17xf32=0 -0.19509 -16.8405 -1.9445 -10.2929 0.83147 19.7304 -3.43275 0.3 0.294236 -19.5466 -1.66294 10.7879 -0.166671 10.236 0 0
  rhs:
    17xf32=0 0 -23.9564 0 -10.2543 0 -6.14437 0 -10 0 3.86551 0 0.637674 0 52.4535 0 0
[  FAILED  ] module.rfft_1d, where GetParam() = 0 (53 ms)
[ RUN      ] module.rfft_2d
/tmpfs/src/github/iree/runtime/src/iree/modules/check/module.cc:352: Failure
Failed
Expected near equality of these values. Contents does not match.
  lhs:
    1x17xf32=[649.4 0.980785 -577.865 2.91014 591.893 -0.55557 -572.297 0.682816 630.4 0.0585271 -579.667 -1.11114 592.388 -0.249441 -586.364 0 647.4]
  rhs:
    1x17xf32=[666.846 0 -590.169 0 593.448 0 -579.529 0 629.954 0 -567.113 0 591.751 0 -583.189 0 630.846]
/tmpfs/src/github/iree/runtime/src/iree/modules/check/module.cc:352: Failure
Failed
Expected near equality of these values. Contents does not match.
  lhs:
    1x17xf32=[0 -0.19509 -16.8405 -1.9445 -10.2929 0.83147 19.7304 -3.43275 0.3 0.294236 -19.5466 -1.66294 10.7879 -0.166671 10.236 0 0]
  rhs:
    1x17xf32=[0 0 -23.9564 0 -10.2543 0 -6.14437 0 -10 0 3.86551 0 0.637674 0 52.4535 0 0]
[  FAILED  ] module.rfft_2d, where GetParam() = 1 (35 ms)
[----------] 2 tests from module (89 ms total)

[----------] Global test environment tear-down
[==========] 2 tests from 1 test suite ran. (89 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 2 tests, listed below:
[  FAILED  ] module.rfft_1d, where GetParam() = 0
[  FAILED  ] module.rfft_2d, where GetParam() = 1

authors: GMNGeoffrey MaheshRavishankar benvanik okkwon

repo: google/iree


text:
Updated Validations.py python script :)

Updated validations.py python script.
Fixed the behavior of validate_user function in validations.py.
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

@googlebot I signed it!

repo: google/it-cert-automation-practice


text:
Updated validation.py python script

Add another condition that checks "first chaaracter of the Username must be a letter"
Updates validations.py python script
Fixed the behavior of validate_user function in validations.py
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

@googlebot I signed it!


text:
Closes: #1

Updated validations.py python script.
Fixed the behavior of validate_user function in validations.py to ensure username has to begin with alphabet.
Fixes #1

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).
Please visit https://cla.developers.google.com/ to sign.
Once you've signed (or fixed any issues), please reply here with @googlebot I signed it! and we'll verify it.
What to do if you already signed the CLA
Individual signers

It's possible we don't have your GitHub username or you're using a different email address on your commit. Check your existing CLA data and verify that your email is set on your git commits.

Corporate signers

Your company has a Point of Contact who decides which employees are authorized to participate. Ask your POC to be added to the group of authorized contributors. If you don't know who your Point of Contact is, direct the Google project maintainer to go/cla#troubleshoot (Public version).
The email used to register you as an authorized contributor must be the email used for the Git commit. Check your existing CLA data and verify that your email is set on your git commits.
The email used to register you as an authorized contributor must also be attached to your GitHub account.

Googlers: Go here for more info.

@googlebot I signed it!


text:
Improve username behavior in validations.py

Fixes #1

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

Improved valid user name checks in validations.py


text:
Added check to confirm first character is a letter.

closes #1
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[x] Tests pass
[x] Appropriate changes to README are included in PR

@googlebot I signed it!


text:
Closes: #1

Updated validations.py python script.
Fixed the behavior of validate_user function in validations.py.
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[x] Tests pass
[x] Appropriate changes to README are included in PR

Done

I don´t have any files


text:
Is there any paper or online document like Arxiv describes the ideas behind this project?

Is there any paper or online document like Arxiv describes the ideas behind this project?
Or a more detailed README.md?

Hey, thanks for your question!
We don't have a paper or a more detailed README yet, although those are both on our list of things we'd like to do. The project is still in relatively early development. This push to github was both because 1) we feel we have an interesting core for researchers to play with and 2) we'd like to shift our development to be out in the open.
Our overall objectives with this project are:
Fast iteration time for researchers
We would like this library to make it as easy as possible for researchers to express experiments and ideas. We think we can achieve this in two ways.

Often when doing physics simulations, you would like to express certain quantities as derivatives of other quantities (e.g. computing forces from energies or elastic moduli). Using JAX's autodiff means that people doing research don't need to spend their time computing these complicated derivatives.
Everything is written in Python. Normally, the simulation code, to be fast, is written in C++ and/or in handmade CUDA kernels. This means researchers can only express a certain range of ideas before they have to go into the lower level, more complicated, parts of the code. Here, everything is in python and JIT compiled to XLA which we think gives a nice balance between expressivity and speed.

Explore the use of functional programming in the space of molecular dynamics software
Most molecular dynamics code (and research code generally) is written imperatively. Once again, this decision is often made because traditionally code is written in C++ for speed reasons. However, because we JIT compile to XLA, we don't suffer any loss of speed by being functional. This allows us to explore a new part of software design space.
Orientation towards pedagogy
Usage of our code should as closely mimic physics textbook descriptions as possible and to be easy to tinker with. The details of this point really rest on the automatic derivatives and compilation to XLA, mentioned above. One additional point here is that we hope to add primitives that enable code written in this "physics first" manner to be fast and scalable. For example, we include an operation grid that takes any function and computes it using a spatial partition of the physical system which enables faster evaluation on large systems.
Machine learning as a first class citizen
We want be able to build machine learning models directly into physics simulations. We think this might enable a bunch of interesting research directions, such as online learning and easy use of empirical potentials constructed from DFT calculations.
Scales to very large simulations
Eventually, we want to take advantage of modern hardware and parallelism over multiple GPU / TPUs to do simulations of very large systems. We're especially curious to see how TPUs perform in this regard, taking advantage of the fast interconnects between TPU chips.
If you have any specific questions, I'd be more than happy to answer them here. I'll also leave this issue open and update it as we improve our documentation.

Thanks! Very informative!

Now we have a paper here! Since this is linked from the README, I'm going close this issue.

Now we have a paper here! Since this is linked from the README, I'm going close this issue.

Great！ Thanks，@sschoenholz

authors: iphyer sschoenholz

repo: google/jax-md


text:
DOC: mark jax.enable_custom_prng as transient

Followup to https://github.com/google/jax/pull/8718#discussion_r761307605

Hm, turns out the autosummary strips this addition: https://jax--8768.org.readthedocs.build/en/8768/jax.config.html

I approved before noticing your comment. Could this be some interaction with doc syntax (cf. square brackets)?

Trying with parens rather than square brackets.

authors: froystig jakevdp

repo: google/jax


text:
jax.numpy: add ufunc-style APIs for several jnp functions

This adds a ufunc object to the jax.numpy API, so that standard unary and binary functions have the extra methods exposed by numpy ufuncs. Example:
In [1]: import jax.numpy as jnp

In [2]: x = jnp.arange(5)

In [3]: indices = jnp.array([1, 1, 3])

In [4]: jnp.add(x, 1)  # Standard function call works
Out[4]: DeviceArray([1, 2, 3, 4, 5], dtype=int32)

In [5]: jnp.add.reduce(x)  # reduce() method applies binary reduction.
Out[5]: DeviceArray(10, dtype=int32)

In [6]: jnp.add.accumulate(x)  # accumulate() method is cumulative reduction
Out[6]: DeviceArray([ 0,  1,  3,  6, 10], dtype=int32)

In [7]: jnp.add.at(x, indices, 10, inplace=False)  # at() method is similar to JAX's ndarray.at
Out[7]: DeviceArray([ 0, 21,  2, 13,  4], dtype=int32)

In [8]: jnp.add.reduceat(x, indices)  # reduceat() is similar to JAX's segment_sum
Out[8]: DeviceArray([0, 3, 7], dtype=int32)

I'll still need to give the ufunc treatment to the rest of the functions in jax._src.numpy.ufuncs, but this gives us a good start.

Note to self: we could also probably raise better errors for unsupported function arguments, cf. #1328 and #1364

For some of these, we should probably compute accumulations via associative_scan rather than scan for better performance. I'll probably leave that for a followup.

I was thinking about this more... maybe a more JAXy way to do this would be to define a @ufunc decorator that can turn any function into a ufunc instance with the appropriate attributes. That would reduce the complexity of this change, and we could introduce the feature in a more gradual manner. We could potentially wrap basic ufuncs by default, but we wouldn't have to do it right away.

Closing in favor of https://github.com/google/jax/pull/17054 for now.


text:
Capture all local variables [phab:D965]

Created by djrenren at 2016-07-14 19:23:02:
By iterating over the def_map, we can capture
all local variables. This change introduces a blacklist
that allows us to mark variables we don't want to index
before we perform this iteration.

zarko commented inline (context lost during migration) at 2016-07-14 19:49:14:
defines/binding

zarko commented inline (context lost during migration) at 2016-07-14 19:49:14:
Probably unintentional?

djrenren commented inline (context lost during migration) at 2016-07-14 19:52:09:
Oh uh yeah... Copy and paste got me again. That means the test is broken :(

djrenren commented inline (context lost during migration) at 2016-07-14 19:52:09:
That would be why the test was "passing" sigh

djrenren wrote at 2016-07-14 20:20:25:

Doing the right thing for the right reasons

djrenren wrote at 2016-07-14 20:28:37:

Update stale comment

zarko commented inline (context lost during migration) at 2016-07-15 17:38:04:
Please add a comment describing what this field is for. (You do talk about it below, but it would be helpful to have a brief description here too.)

djrenren wrote at 2016-07-15 17:53:58:

Comment the blacklist member

zarko accepted this revision at 2016-07-15 18:04:03

djrenren closed via commit c2798f0045797c403f1216bdc31ca67e18c87c72 at 2016-07-15 18:18:48

repo: google/kythe


text:
Go indexer: Mark new type declarations as records. [phab:D1594]

Created by fromberger at 2017-04-30 16:20:13:
Previously type definitions defaulted to the node kind "tapp", which was an
incorrect placeholder. For type definitions whose underlying type is not
already a struct or interface, denote these instead as a "record" node with the
new subkind "type".
Nominally, the graph model is of a record structure having a single unexported
field of the underlying type, which isn't actually how it is represented in Go,
but is close enough to give sensible graph results.
Schema: Add Go-specific rules for type definitions.

fromberger wrote at 2017-05-01 19:11:20:
Ping!

zarko accepted this revision at 2017-05-02 20:54:17

fromberger closed via commit 6126a0c45ed0afc10c4235759c576f7d9c31b388 at 2017-05-02 22:00:39


text:
Change imputed constructor support to use a function/regex rather than plain strings and support inline namespace calls [phab:D2080]

Created by shahms at 2017-12-06 19:22:10:
Change imputed constructor support to use a function/regex rather than plain strings and support inline namespace calls

fromberger accepted this revision at 2017-12-06 19:25:22

shahms closed via commit 34da61f6053c58483beab500cbaf6d5dddbcb530 at 2017-12-06 19:27:11


text:
Routing Solver, pickup to delivery time cannot be limited

I am trying to build a model with time windows (at delivery), capacitated vehicles with pickups and deliveries. I am also trying to configure allowed transport time between pickups and deliveries which seems to be the issue. I have used the syntax from @Mizux 's guidance in issue #2071 as routing.solver().Add(cost_dimension.CumulVar(delivery_index) <= (cost_dimension.CumulVar(pickup_index) + 75)). If I remove this line it will work just fine but if the line is included then no solution is returned
This is whilst I'm sure there are solutions as I have tested this with time windows at pickups and there is a solution. But this is not an ideal alternative as the transit time can be extended by whatever the time window is at pickups. For example delivering an item between 08:45 and 09:00 with 1 hour transit time allowed, can be roughly modelled as 07:45-08:00 pickup time window. But this is not accurate because a pickup can be made at 07:46 and delivered at 08:55.
Version: 7.7.7810
Language: Python
Routing Solver
Windows 10 Pro
from __future__ import print_function
import os
import time
import pathlib
import datetime
import numpy as np
import pandas as pd
from ortools.constraint_solver import pywrapcp
from ortools.constraint_solver import routing_enums_pb2

# Operational inputs
vehicle_number = 15
vehicle_capacity = 15
vehicle_capacity_b = 2
demand_b_space_required = 3
hours_in_time_period = 4

def create_data_model(cost_mat, times, demand_dim_a, demand_dim_b, veh_n, veh_cap_a, veh_cap_b,
                      pairs_list, allowed_times):
    """Stores the data for the problem."""
    data = {
        'time_matrix': cost_mat,
        'time_windows': times,
        'demands_dimension_a': demand_dim_a,
        'demands_dimension_b': demand_dim_b,
        'num_vehicles': veh_n,
        'depot': 0,
        'vehicle_capacities_a': [],
        'vehicle_capacities_b': [],
        'pickups_deliveries': pairs_list,
        'allowed_transit_times': allowed_times
    }
    data['vehicle_capacities_a'] += veh_n * [veh_cap_a]
    data['vehicle_capacities_b'] += veh_n * [veh_cap_b]

    return data

def print_solution(data, manager, routing, solution):
    """Prints solution on console."""
    # Display dropped nodes.
    dropped_nodes = 'Dropped nodes:'
    for node in range(routing.Size()):
        if routing.IsStart(node) or routing.IsEnd(node):
            continue
        if solution.Value(routing.NextVar(node)) == node:
            dropped_nodes += ' {}'.format(manager.IndexToNode(node))
    print(dropped_nodes)

    # Display routes
    total_distance = 0
    total_load = 0
    total_load_b = 0
    for vehicle_id in range(data['num_vehicles']):
        index = routing.Start(vehicle_id)
        plan_output = 'Route for vehicle {}:\n'.format(vehicle_id + 1)
        route_distance = 0
        route_load = 0
        load_b = 0
        while not routing.IsEnd(index):
            node_index = manager.IndexToNode(index)
            route_load += data['demands_dimension_a'][node_index]
            load_b += data['demands_dimension_b'][node_index]
            plan_output += ' {0} Load_a({1}) Load_b({2}) -> '.format(node_index, route_load, load_b)
            previous_index = index
            index = solution.Value(routing.NextVar(index))
            route_distance += routing.GetArcCostForVehicle(
                previous_index, index, vehicle_id)
        plan_output += ' {0} Load_a({1} Load_b({2}) )\n'.format(manager.IndexToNode(index), route_load,
                                                                  load_b)
        plan_output += 'Distance of the route: {}min\n'.format(route_distance)
        plan_output += 'Load_a of the route: {0} Load_b({1}) \n'.format(route_load, load_b)
        print(plan_output)
        total_distance += route_distance
        total_load += route_load
        total_load_b += load_b
    print('Total distance of all routes: {}min'.format(total_distance))
    print('Total Load_a of all routes: {0} Load_b users {1}'.format(total_load, total_load_b))

def main():
    """Solve the VRP problem."""

    # Get a list of all locations
    locations = [75533, 75533, 75644, 75644, 84051, 84051, 84229, 84229, 86005, 86005, 88702, 88702, 88817, 88817,
                 89220, 89220, 94499, 94499, 96528, 96528, 96554, 96554, 96911, 96911, 97633, 97633, 98493, 98493,
                 99582, 99582, 100371, 100371, 100742, 100742]

    # Get a list of all dimension_a demands
    demand_dimension_a = [0, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 3, -3, 1, -1, 1, -1, 1, -1, 1, -1, 3, -3, 1, -1,
                          1, -1, 3, -3, 3, -3, 1, -1]

    # Get a list of all dimension_b demands
    demand_dimension_b = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1,
                          -1, 1, -1, 0, 0]

    # Get a list of all time windows
    time_windows = [(0, 240), (0, 240), (225, 240), (0, 240), (225, 240), (0, 240), (225, 240), (0, 240), (225, 240),
                    (0, 240), (225, 240), (0, 240), (225, 240), (0, 240), (225, 240), (0, 240), (225, 240), (0, 240),
                    (225, 240), (0, 240), (225, 240), (0, 240), (225, 240), (0, 240), (225, 240), (0, 240), (225, 240),
                    (0, 240), (225, 240), (0, 240), (225, 240), (0, 240), (225, 240), (0, 240), (225, 240)]

    # Create the square cost matrix
    cost_matrix = [
        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
        [0, 0, 24, 20, 24, 22, 25, 46, 24, 21, 24, 29, 24, 29, 30, 9, 24, 23, 25, 32, 24, 9, 24, 38, 29, 25, 24, 88, 94,
         62, 99, 68, 99, 22, 24],
        [0, 24, 0, 24, 0, 26, 2, 38, 0, 22, 0, 4, 0, 16, 7, 23, 0, 24, 2, 11, 0, 21, 0, 19, 5, 6, 0, 99, 105, 72, 110,
         79, 110, 22, 0],
        [0, 23, 25, 0, 25, 4, 27, 28, 25, 7, 25, 27, 25, 40, 32, 28, 25, 5, 27, 15, 25, 28, 25, 20, 30, 30, 25, 106,
         111, 79, 116, 86, 116, 9, 25],
        [0, 24, 0, 24, 0, 26, 2, 38, 0, 22, 0, 4, 0, 16, 7, 23, 0, 24, 2, 11, 0, 21, 0, 19, 5, 6, 0, 99, 105, 72, 110,
         79, 110, 22, 0],
        [0, 22, 25, 5, 25, 0, 27, 31, 25, 4, 25, 27, 25, 40, 32, 26, 25, 3, 27, 18, 25, 26, 25, 23, 30, 30, 25, 104,
         110, 77, 115, 84, 115, 6, 25],
        [0, 24, 2, 26, 2, 27, 0, 39, 2, 24, 2, 6, 2, 17, 5, 23, 2, 26, 0, 12, 2, 22, 2, 21, 7, 7, 2, 100, 105, 73, 110,
         80, 110, 24, 2],
        [0, 44, 36, 26, 36, 30, 38, 0, 36, 30, 36, 35, 36, 51, 43, 49, 36, 31, 38, 29, 36, 49, 36, 31, 41, 41, 36, 127,
         132, 100, 137, 107, 137, 32, 36],
        [0, 24, 0, 24, 0, 26, 2, 38, 0, 22, 0, 4, 0, 16, 7, 23, 0, 24, 2, 11, 0, 21, 0, 19, 5, 6, 0, 99, 105, 72, 110,
         79, 110, 22, 0],
        [0, 19, 22, 5, 22, 4, 24, 31, 22, 0, 22, 24, 22, 36, 29, 24, 22, 2, 24, 15, 22, 24, 22, 23, 27, 26, 22, 102,
         108, 75, 113, 82, 113, 2, 22],
        [0, 24, 0, 24, 0, 26, 2, 38, 0, 22, 0, 4, 0, 16, 7, 23, 0, 24, 2, 11, 0, 21, 0, 19, 5, 6, 0, 99, 105, 72, 110,
         79, 110, 22, 0],
        [0, 28, 4, 26, 4, 27, 6, 37, 4, 23, 4, 0, 4, 20, 11, 27, 4, 26, 6, 12, 4, 25, 4, 20, 9, 10, 4, 103, 109, 76,
         114, 83, 114, 25, 4],
        [0, 24, 0, 24, 0, 26, 2, 38, 0, 22, 0, 4, 0, 16, 7, 23, 0, 24, 2, 11, 0, 21, 0, 19, 5, 6, 0, 99, 105, 72, 110,
         79, 110, 22, 0],
        [0, 22, 12, 34, 12, 35, 13, 48, 12, 31, 12, 16, 12, 5, 18, 21, 12, 33, 13, 21, 12, 20, 12, 30, 17, 5, 12, 98,
         103, 71, 108, 73, 108, 31, 12],
        [0, 24, 2, 26, 2, 27, 0, 39, 2, 24, 2, 6, 2, 17, 5, 23, 2, 26, 0, 12, 2, 22, 2, 21, 7, 7, 2, 100, 105, 73, 110,
         80, 110, 24, 2],
        [0, 8, 22, 24, 22, 25, 23, 50, 22, 24, 22, 27, 22, 26, 28, 0, 22, 27, 23, 30, 22, 1, 22, 38, 27, 23, 22, 84, 90,
         57, 95, 64, 95, 26, 22],
        [0, 24, 0, 24, 0, 26, 2, 38, 0, 22, 0, 4, 0, 16, 7, 23, 0, 24, 2, 11, 0, 21, 0, 19, 5, 6, 0, 99, 105, 72, 110,
         79, 110, 22, 0],
        [0, 22, 24, 5, 24, 1, 26, 32, 24, 2, 24, 26, 24, 38, 31, 26, 24, 0, 26, 17, 24, 26, 24, 25, 29, 28, 24, 104,
         110, 77, 115, 84, 115, 4, 24],
        [0, 24, 2, 26, 2, 27, 0, 39, 2, 24, 2, 6, 2, 17, 5, 23, 2, 26, 0, 12, 2, 22, 2, 21, 7, 7, 2, 100, 105, 73, 110,
         80, 110, 24, 2],
        [0, 32, 11, 15, 11, 18, 13, 32, 11, 15, 11, 13, 11, 26, 18, 32, 11, 17, 13, 0, 11, 30, 11, 9, 16, 16, 11, 108,
         114, 82, 119, 88, 119, 17, 11],
        [0, 24, 0, 24, 0, 26, 2, 38, 0, 22, 0, 4, 0, 16, 7, 23, 0, 24, 2, 11, 0, 21, 0, 19, 5, 6, 0, 99, 105, 72, 110,
         79, 110, 22, 0],
        [0, 9, 21, 25, 21, 26, 22, 50, 21, 25, 21, 26, 21, 25, 27, 1, 21, 27, 22, 29, 21, 0, 21, 37, 26, 23, 21, 83, 89,
         57, 94, 63, 94, 27, 21],
        [0, 24, 0, 24, 0, 26, 2, 38, 0, 22, 0, 4, 0, 16, 7, 23, 0, 24, 2, 11, 0, 21, 0, 19, 5, 6, 0, 99, 105, 72, 110,
         79, 110, 22, 0],
        [0, 33, 14, 15, 14, 19, 15, 28, 14, 18, 14, 15, 14, 29, 20, 34, 14, 20, 15, 3, 14, 33, 14, 5, 19, 19, 14, 111,
         117, 84, 122, 91, 122, 20, 14],
        [0, 24, 0, 24, 0, 26, 2, 38, 0, 22, 0, 4, 0, 16, 7, 23, 0, 24, 2, 11, 0, 21, 0, 19, 5, 6, 0, 99, 105, 72, 110,
         79, 110, 22, 0],
        [0, 20, 7, 30, 7, 30, 7, 42, 7, 26, 7, 11, 7, 10, 12, 19, 7, 28, 7, 16, 7, 18, 7, 24, 12, 0, 7, 96, 101, 69,
         106, 76, 106, 25, 7],
        [0, 24, 0, 24, 0, 26, 2, 38, 0, 22, 0, 4, 0, 16, 7, 23, 0, 24, 2, 11, 0, 21, 0, 19, 5, 6, 0, 99, 105, 72, 110,
         79, 110, 22, 0],
        [0, 89, 100, 104, 100, 105, 101, 130, 100, 104, 100, 105, 100, 105, 106, 84, 100, 107, 101, 108, 100, 83, 100,
         116, 105, 101, 100, 0, 24, 40, 29, 55, 29, 106, 100],
        [0, 84, 96, 100, 96, 101, 96, 125, 96, 100, 96, 100, 96, 100, 101, 80, 96, 102, 96, 104, 96, 79, 96, 112, 101,
         97, 96, 6, 0, 35, 5, 52, 5, 102, 96],
        [0, 57, 69, 72, 69, 74, 69, 98, 69, 73, 69, 73, 69, 73, 74, 53, 69, 75, 69, 76, 69, 51, 69, 85, 74, 70, 69, 34,
         43, 5, 48, 44, 48, 74, 69],
        [0, 84, 96, 100, 96, 101, 96, 125, 96, 100, 96, 100, 96, 100, 101, 80, 96, 102, 96, 104, 96, 79, 96, 112, 101,
         97, 96, 6, 0, 35, 5, 52, 5, 102, 96],
        [0, 63, 74, 78, 74, 79, 75, 104, 74, 78, 74, 78, 74, 73, 80, 58, 74, 80, 75, 82, 74, 57, 74, 90, 79, 72, 74, 50,
         65, 42, 70, 5, 70, 80, 74],
        [0, 84, 96, 100, 96, 101, 96, 125, 96, 100, 96, 100, 96, 100, 101, 80, 96, 102, 96, 104, 96, 79, 96, 112, 101,
         97, 96, 6, 0, 35, 5, 52, 5, 102, 96],
        [0, 21, 22, 7, 22, 6, 23, 33, 22, 2, 22, 25, 22, 35, 28, 26, 22, 4, 23, 16, 22, 26, 22, 25, 27, 25, 22, 104,
         109, 77, 114, 84, 114, 0, 22],
        [0, 24, 0, 24, 0, 26, 2, 38, 0, 22, 0, 4, 0, 16, 7, 23, 0, 24, 2, 11, 0, 21, 0, 19, 5, 6, 0, 99, 105, 72, 110,
         79, 110, 22, 0]]

    # Create the list of pickups and deliveries
    pickups_deliveries_list = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12], [13, 14], [15, 16], [17, 18],
                               [19, 20], [21, 22], [23, 24], [25, 26], [27, 28], [29, 30], [31, 32], [33, 34]]

    # Crete the list of allowed transit times
    allowed_transit_times = [75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 100, 75]

    # Instantiate the data problem.
    data = create_data_model(cost_matrix,
                             time_windows,
                             demand_dimension_a,
                             demand_dimension_b,
                             vehicle_number,
                             vehicle_capacity,
                             vehicle_capacity_b,
                             pickups_deliveries_list,
                             allowed_transit_times)

    # Create the routing index manager.
    manager = pywrapcp.RoutingIndexManager(len(data['time_matrix']), data['num_vehicles'], data['depot'])

    # Create Routing Model.
    routing = pywrapcp.RoutingModel(manager)

    # Create and register a transit callback.
    def cost_callback(from_index, to_index):
        """Returns the cost between the two nodes."""
        # Convert from routing variable Index to distance matrix NodeIndex.
        from_node = manager.IndexToNode(from_index)
        to_node = manager.IndexToNode(to_index)
        return data['time_matrix'][from_node][to_node]

    def demand_dimension_a_callback(from_index):
        """Returns the demand of the node."""
        # Convert from routing variable Index to demands NodeIndex.
        from_node = manager.IndexToNode(from_index)
        return data['demands_dimension_a'][from_node]

    def demand_dimension_b_callback(from_index):
        """Returns the demand of the node."""
        # Convert from routing variable Index to demands NodeIndex.
        from_node = manager.IndexToNode(from_index)
        return data['demands_dimension_b'][from_node]

    transit_callback_index = routing.RegisterTransitCallback(cost_callback)
    demand_dimension_a_callback_index = routing.RegisterUnaryTransitCallback(demand_dimension_a_callback)
    demand_dimension_b_callback_index = routing.RegisterUnaryTransitCallback(demand_dimension_b_callback)

    # Define cost of each arc.
    routing.SetArcCostEvaluatorOfAllVehicles(transit_callback_index)

    # Add capacity constraint.
    routing.AddDimensionWithVehicleCapacity(
        demand_dimension_a_callback_index,
        0,  # null capacity slack
        data['vehicle_capacities_a'],  # vehicle maximum capacities
        True,  # start cumul to zero
        'Capacity_Dimension_A')
    routing.AddDimensionWithVehicleCapacity(
        demand_dimension_b_callback_index,
        0,  # null capacity slack
        data['vehicle_capacities_b'],  # vehicle maximum capacities
        True,  # start cumul to zero
        'Capacity_Dimension_B')

    # Add Travel Time constraint
    dimension_name = 'Time'
    routing.AddDimension(
        transit_callback_index,
        120,  # allow 120 minutes of wait time
        240,  # vehicle maximum travel time (minutes) <- this must be greater than the latest start of a time window
        True,  # start cumul to zero
        dimension_name)
    cost_dimension = routing.GetDimensionOrDie(dimension_name)

    # Add penalty for dropping a node from the solution
    # penalty = 1000
    # for node in range(1, len(data['time_matrix'])):
    #    routing.AddDisjunction([manager.NodeToIndex(node)], penalty)

    # Add time window constraints for each location except depot.
    for location_idx, time_window in enumerate(data['time_windows']):
        if location_idx == 0:
            continue
        index = manager.NodeToIndex(location_idx)
        cost_dimension.CumulVar(index).SetRange(time_window[0], time_window[1])

    # Add time window constraints for each vehicle start node.
    for vehicle_id in range(data['num_vehicles']):
        index = routing.Start(vehicle_id)
        cost_dimension.CumulVar(index).SetRange(data['time_windows'][0][0], data['time_windows'][0][1])

    # Define Transportation Requests.
    i = 0
    for request in data['pickups_deliveries']:
        pickup_index = manager.NodeToIndex(request[0])
        delivery_index = manager.NodeToIndex(request[1])
        routing.AddPickupAndDelivery(pickup_index, delivery_index)
        routing.solver().Add(routing.VehicleVar(pickup_index) == routing.VehicleVar(delivery_index))
        routing.solver().Add(cost_dimension.CumulVar(pickup_index) <= cost_dimension.CumulVar(delivery_index))
        routing.solver().Add(cost_dimension.CumulVar(delivery_index) <= (cost_dimension.CumulVar(pickup_index) + data['allowed_transit_times'][i]))
        # cost_dimension.SetPickupToDeliveryLimitFunctionForPair(limit_function='PickupToDeliveryLimitFunction', pair_index=i)
        i += 1

    for i in range(data['num_vehicles']):
        routing.AddVariableMinimizedByFinalizer(cost_dimension.CumulVar(routing.Start(i)))
        routing.AddVariableMinimizedByFinalizer(cost_dimension.CumulVar(routing.End(i)))

    # Setting first solution heuristic.
    search_parameters = pywrapcp.DefaultRoutingSearchParameters()

    search_parameters.time_limit.seconds = 800
    # search_parameters.solution_limit = 100
    search_parameters.first_solution_strategy = routing_enums_pb2.FirstSolutionStrategy.AUTOMATIC

    # Solve the problem.
    start = time.time()
    solution = routing.SolveWithParameters(search_parameters)
    end = time.time()
    print('Solution took -', round(end - start, 2))

    # Print solution on console.
    if solution:
        print_solution(data, manager, routing, solution)

if __name__ == '__main__':
    main()

wild guess here, but is there enough time to get from the last node back to the depot for all vehicles?
You have a hard constraint on the cumul of Time that is 240, but also the time window of many nodes (225,240).  If the vehicle visits a node at 225 (or 240 for that matter) it needs to get back to the depot inside of the max time allowed in the dimension

wild guess here, but is there enough time to get from the last node back to the depot for all vehicles?
You have a hard constraint on the cumul of Time that is 240, but also the time window of many nodes (225,240). If the vehicle visits a node at 225 (or 240 for that matter) it needs to get back to the depot inside of the max time allowed in the dimension

Hi. Thanks for looking into this. Your reply makes sense but the problem is that all the times from and to the depot are 0 and you'd expect that the hard constraint is not in effect really for this specific node. I'll try and allow additional time to get back to depot and see if that's actuallly the issue.

Okay I actually ran your code.
Your time dimension doesn't have enough slack.
Either set the slack to 240, or else set "set start time to zero" to be false.
With a time slack of 240, I had no problem running with solutions.
In the solutions that are output, all of the first pickups happen after 2:00 (earliest is 2:10) but you only allow a slack of 2:00, and force the time to start at zero, so there isn't enough time to wait.
I think the culprit (versus dropping/commenting out the line routing.solver().Add(cost_dimension.CumulVar(delivery_index) <= (cost_dimension.CumulVar(pickup_index) + 75)) is the nodes with lower bound time window of 225.  This is 3:45.  The requirement forces pickup to be withint 75 minutes of 225, which is at the lowest 2hrs 30 minutes.  So the entire schedule must be pushed later in the day to make sure pickups are late enough to hit this constraint...hence the need for more slack time than 2 hours.

Thanks @jmarca for your detailed answer. I changed the slack time as you said and I'm getting solutions. But still I need to get my head around how this is working. I'll get back to you on this soon.

Glad it is working on your end.  If you have more questions about how slack variables should work, ask on the forum. I’ve been trying to help out on there more lately to keep busy, as work has dried up.

authors: jmarca mo-zed

repo: google/or-tools


text:
Refactor actions for PresetsDataView

We added DataView::OnLoadPresetRequested,
DataView::OnDeletePresetRequested and
DataView::OnShowInExplorerRequested for actions needed in
PresetsDataView.
Bug: http://b/205676296

Im going to merge this on behalf of Vicky.

repo: google/orbit


text:
Add C specific harness generation logic

The default C++ logic has some limitations for C projects that's causing failures during e.g. builds. A C-specific flow would benefit in alleviating these and also open the door up on how to add more harness-generation workflows. Majority of this will need changes in prompt_builder by simply adding a new prompt class.
I'd like to take the following high-level steps to achieve this:

Add a new flow with specific C logic that fits into the current system without being intrusive (i.e. existing experiments will continue the same), where the C specific flow shows improvements in local runs in comparison to the existing default builder.
Integrate in the CI so we can run experiments with the C-specific flow.
Continue expanding on the C specific flow.

The first step has been achieved with https://github.com/google/oss-fuzz-gen/pull/338

repo: google/oss-fuzz-gen


text:
chore: Replace package level ignores with entire directory ignores in our osv-scanner.toml in fixtures

Uses the new feature landed in #1214

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 68.28%. Comparing base (e054385) to head (7c38d42).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1337      +/-   ##
==========================================
- Coverage   68.43%   68.28%   -0.16%
==========================================
  Files         183      183
  Lines       17606    17606
==========================================
- Hits        12049    12022      -27
- Misses       4895     4919      +24
- Partials      662      665       +3

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Hmm seems like the vulnerability score is already 2/10 right now, might just merge this first and push for scorecard to do a release later.

Merged this into V2 branch for now.

authors: another-rex codecov-commenter

repo: google/osv-scanner


text:
Nearby native Android failed.

Hi @mmocny, I'm having recurring issues with the Nearby native Android, very intermittent, mostly in versions of Android 5.x.x and 6.x.x, but I've already called called Clients with other versions of Android. What always caught my attention is that the App Physical Web always receives the URLs, almost never fails what I can no longer talk about Android's Nearby. Follow the screen now. I'm from Porto Alegre - RS - Brazil.

@luciofr: Do you use an URL shortening service? Which one?
As you know, we have the same issues - but as menitiones already under #908 with an intermittently behaviour.
Current status is still not good, but we do think that he reascon could be found with the shortening/resolution service communication.

Hi @ LOC-Place, @mmocny asked me to open another call so someone on his team could talk directly to me, so I created # 909. Regarding the URL shorter, we do not use any, because of the URL byte limitation, we use a concatenation with Major and Minor in Hexa for each Beacon, so each Beacon has a unique URL, and the information that is in our Platform can Be changed at any time, which works perfectly for iOS and the Phisical Web App, but the native Android Nearby has this intermittent problem. Our URLs always go through the validator.

Hi @luciofr, sorry about the delay, and about the flaky behavior. I'm on the Nearby team. There's a new version coming out within a week or two that may help, but here's some info to assist in debugging:

Turn on Developer Mode for the device (this adds more info in the service dumps mentioned below). In the new version, there will also be a Debug Mode switch in the Nearby view settings.
Immediately after it fails, would you be able to take a bug report (Settings > Developer options > Take bug report), and attach it or send directly to me or @mmocny? (Note that a bug report may contain some identifying information.)
You can also try dumping the state info from the NearbyMessages and DiscoveryService. (This info is also automatically included in the bug report.) The dump should have info about all the nearby BLE devices, and the resolved URL information (title, description). It may help to diagnose at what stage it's failing (i.e. did it find the beacon, but then the server communication failed?).

adb shell dumpsys activity service com.google.android.gms/.nearby.messages.service.NearbyMessagesService
adb shell dumpsys activity service com.google.android.gms/.nearby.discovery.service.DiscoveryService

Hi @mmocny and @jfarfel, we have members of our Team in San Francisco, is there any way we can schedule a time for our Teams to discuss the matter in person?

Hi @mmocny and @jfarfel, I continue with issues related to Nearby, until I received an update from Android, but it seems that nothing has changed. Through Chrome notifications on iOS or through the App Physical Web, everything works perfectly, however, through the native natively nothing happens. Nearby has no shortcomings so I can send it to you as requested, it simply seems to look for the next Beacons, but without displaying any URLs. We are in the middle of a Proof of Concept with one of the biggest Players in Latin America with everything already approved, only need to run Eddystone natively on Android. I need your feedback as soon as possible.

Hi @scottjenson, @mmocny and @jfarfel, we were able to get great results with Nearby native Android, and we'd like to share it with you. 1) we were doing some jumps with our URL, which after reading several posts we realized that it was one of the service failure factors that remained working on Physical Web and iOS via Chorme notifications. 2) We modified in our Beacon the value of the Measured Power Value, which with the values that were set worked perfectly in Physical Web and iOS via Chrome Notifications and that after the last updates of Android stopped . Today, July 3, 2017, we have all our Beacons returning to normal via protocol Eddystone. Thank you very much for the feedback.

Hi Lucio, thanks for the updates! Sorry I wasn't available to get back. Glad to hear it's working now. Yes, it could have been due to the URLs used. This FAQ gives some context about why a nearby link may not appear in Google > Settings > Nearby, or why it may appear there but not result in a notification.
https://developers.google.com/nearby/notifications/developer_faq

authors: LOC-Place jfarfel luciofr

repo: google/physical-web


text:
Make pulldown-cmark library rustc build system compliant

Sorry to bother you once again... External crates used by rustc needs this as well. In hope it'll be the last rustc-bound PR.

No worries, thanks for doing this.

authors: GuillaumeGomez raphlinus

repo: google/pulldown-cmark

license: MIT


text:
Python fastRand fails when given p=1

import _fastrand
_fastrand.randbits(1.0, num_bits)
results in 0L

Fixed by pull request 62
https://github.com/google/rappor/pull/62

authors: andychu tkaitchuck

repo: google/rappor


text:
Add New Letters (LITHUANIAN)

Hello,
We like your font.
Could you also add new Lithuanian letters:
ą ę ė į ų ū
Ą Ę Ė Į Ų Ū
Thank you

The font does contain those characters, and always has. Maybe you’ve downloaded an old or subsetted version that does not come from this repository—fact that would make your report invalid.

authors: fitojb tomasale

repo: google/roboto


text:
More support for multiple/cross-OS/arch fuzzing

Update #191
Update #324
Update #333

Travis build is not starting for hours. I am going to submit this as is (make presubmit passes locally).

repo: google/syzkaller


text:
Getting "Error 4; details: 500: Internal Server Error" after following instructions

Hi. We're testing out Vogon on a fresh installation of the latest version of Ubuntu, 19.10, updated to the latest patches/files.
We've followed all the instructions in the guide on this Github project's front page, and we're getting the following error when we try to "Save & generate a preview for row" or "Save & generate all video variations" in the "Video config" tab:
"Error 4; details: 500: Internal Server Error"
The Google sheet is properly linked, being an upload of feed.csv from the base_project folder.
These are the logs on terminal:
Traceback (most recent call last):
  File "/home/ubuntu/vogon_app/vogon/third_party/bottle/bottle.py", line 862, in _handle
    return route.call(**args)
  File "/home/ubuntu/vogon_app/vogon/third_party/bottle/bottle.py", line 1729, in wrapper
    rv = callback(*a, **ka)
  File "server.py", line 129, in generate_preview
    project_dir=project_folder)
  File "/home/ubuntu/vogon_app/vogon/vogon.py", line 190, in generate_preview
    project_dir)
  File "/home/ubuntu/vogon_app/vogon/vogon.py", line 198, in generate_video
    complex_filters, txt_input_files = filter_strings(image_overlays, text_overlays)
  File "/home/ubuntu/vogon_app/vogon/vogon.py", line 254, in filter_strings
    output_stream)
  File "/home/ubuntu/vogon_app/vogon/vogon.py", line 526, in text_filter
    is_cropped_text)
  File "/home/ubuntu/vogon_app/vogon/vogon.py", line 603, in write_temp_image
    rs = subprocess.check_output(' '.join(args), stderr=subprocess.STDOUT, shell=True)
  File "/usr/lib/python3.7/subprocess.py", line 411, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.7/subprocess.py", line 512, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command 'convert -background transparent -colorspace sRGB -font '/home/ubuntu/vogon_app/vogon/projects/hiro/assets/Rye-Regular.ttf' -pointsize 88.0 -fill '#0FAAF0' label:@/tmp/vogon_xdba7yar.txt /tmp/vogon_q3yjlyh0.png' returned non-zero exit status 1.
127.0.0.1 - - [21/Apr/2020 01:47:28] "GET /api/projects/TestProject1/preview/row/1?0.986307353121652 HTTP/1.1" 500 2754```

Any clues on what to do?

I noticed that the "hiro" folder inside the projects folder in '/home/ubuntu/vogon_app/vogon/projects/hiro/assets/Rye-Regular.ttf' didn't exist, so I tried manually creating a 'hiro" folder inside the projects folder and copying the assets folder there to see if it would fix things, but I still get the same result.

@object404 Hi, have you found the solution?

@object404 Hi, have you found the solution?

Nope, haven't been able to make it work on Ubuntu.

Nope, haven't been able to make it work on Ubuntu.

repo: google/vogon


text:
Consider a link to be a patch only if it is tagged as Patch by NVD

Fixes https://github.com/google/vulncode-db/issues/44
There's https://github.com/kotakanbe/go-cve-dictionary/pull/167 to make the changes at upstream go-cve-dictionary
Signed-off-by: Shivam Sandbhor shivam.sandbhor@gmail.com

Thanks Shivam. I'll look into the Alembic issue. Ideally, Alembic would only create or update the resources if they are not already reflecting the desired state.

repo: google/vulncode-db


text:
Animation: Update the UI of the Scale Animation to use a visual direction picker

Summary
Remove the prior to and from input fields and replace with a scale-in or scale-out directional picker. In another PR, the dropdown name Zoom has been renamed to Scale.
Scale In

Scale Out

Relevant Technical Choices
This one is tricky because we are now using two string-based identifiers to map to numeric values.
To-do

User-facing changes
The to and from input fields are gone and now replaced with a picker that sets default values based on the in or out direction.
Testing Instructions

Edit a story and add an object
Select scale in or scale out animations
See the new picker and the arrows that point inward (either top or bottom) scale in or the arrows that point outward scale out.
For scale in you should see the final result (the smaller since it's scaling in) on canvas

Fixes #

Verified in QA
Note: Users now have 2 options for changing scale - by using this feature or by selecting the other scale type as animation type

authors: carlos-kelly csossi

repo: google/web-stories-wp


text:
Infrastructure: Release Automation Tweaks

Context
There were a few remaining issues and questions around release automation.
Summary
Addresses remaining issues after multiple rounds of testings.
Besides a few bugfixes and general workflow improvements now includes proper version bumps after release.
How this has been tested

Setup a SVN repository at https://sourceforge.net/p/web-stories-wp/code/ to test deployment to WordPress.org
Forked repository at https://github.com/swissspidy/web-stories-wp to test release workflow

Example releases:
1.5.0 RC1: https://github.com/swissspidy/web-stories-wp/releases/tag/v1.5.0-rc.1
1.5.0 stable: https://github.com/swissspidy/web-stories-wp/releases/tag/v1.5.0
Relevant Technical Choices

To-do

User-facing changes

Testing Instructions

QA

[x] This is a non-user-facing change and requires no QA

This PR can be tested by following these steps:

UAT

[x] UAT should use the same steps as above.

This PR can be tested by following these steps:

Reviews
Does this PR have a security-related impact?

Does this PR change what data or activity we track or use?

Does this PR have a legal-related impact?

Checklist

[x] This PR addresses an existing issue and I have linked this PR to it in ZenHub
[x] I have tested this code to the best of my abilities
[x] I have verified accessibility to the best of my abilities (docs)
[x] I have verified i18n and l10n (translation, right-to-left layout) to the best of my abilities
[x] This PR contains automated tests (unit, integration, and/or e2e) to verify the code works as intended (docs)
[x] I have added documentation where necessary
[x] I have added a matching Type: XYZ label to the PR

Fixes #6424

Is there a "dry run" option that skips actual git commits/deploy steps but prints the commands instead? Would be nice for making changes to this script in the future.

No, but good suggestion.


text:
[ci] Run Miri test alias models in parallel

In CI, we run Miri tests using both the Stacked Borrows and Tree Borrows aliasing models. This commit runs these in parallel to improve utilization of available parallelism.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 87.71%. Comparing base (889ac1b) to head (8952642).
Report is 1 commits behind head on ptr-test-parallelize-tmp.

:exclamation: Current head 8952642 differs from pull request most recent head 0132ae0
Please upload reports for the commit 0132ae0 to get more accurate results.

Additional details and impacted files
@@                     Coverage Diff                      @@
##           ptr-test-parallelize-tmp    #1311      +/-   ##
============================================================
- Coverage                     87.84%   87.71%   -0.13%
============================================================
  Files                            15       15
  Lines                          5191     5138      -53
============================================================
- Hits                           4560     4507      -53
  Misses                          631      631

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

This workflow run took 18m50s, which is within error bars of the previous times. I'm going to close this as not buying us enough to justify the added complexity.

authors: codecov-commenter joshlf

repo: google/zerocopy


text:
Added ad() method to ResourceNames

Addresses issue #282.

NOTE: This does not change the v1 utility because the Ad resource was introduced in v2.

I'm guessing we have a bug in update_gen_src_java.sh as well - most likely that we're allowing partial matches of the entity name. Is there any chance you could take a look there as well?

@nwbirnie , will follow up on fixing the utility you mentioned separately. Thanks for highlighting that.

authors: jradcliff nwbirnie

repo: googleads/google-ads-java


text:
Synthesis failed for SearchConsole

Hello! Autosynth couldn't regenerate SearchConsole. :broken_heart:
Here's the output from running synth.py:
2020-05-09 05:18:36 [INFO] logs will be written to: /tmpfs/src/github/synthtool/logs/googleapis/elixir-google-api
2020-05-09 05:18:36,161 autosynth > logs will be written to: /tmpfs/src/github/synthtool/logs/googleapis/elixir-google-api
Switched to branch 'autosynth-searchconsole'
2020-05-09 05:18:37 [INFO] Running synthtool
2020-05-09 05:18:37,729 autosynth > Running synthtool
2020-05-09 05:18:37 [INFO] ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/search_console/synth.metadata', 'synth.py', '--']
2020-05-09 05:18:37,729 autosynth > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/search_console/synth.metadata', 'synth.py', '--']
2020-05-09 05:18:37,942 synthtool > Executing /home/kbuilder/.cache/synthtool/elixir-google-api/synth.py.
On branch autosynth-searchconsole
nothing to commit, working tree clean
2020-05-09 05:18:38,167 synthtool > Cloning https://github.com/googleapis/elixir-google-api.git.
2020-05-09 05:18:38,628 synthtool > Running: docker run --rm -v/home/kbuilder/.cache/synthtool/elixir-google-api:/workspace -v/var/run/docker.sock:/var/run/docker.sock -e USER_GROUP=1000:1000 -w /workspace gcr.io/cloud-devrel-public-resources/elixir19 scripts/generate_client.sh SearchConsole
2020-05-09 05:18:43,014 synthtool > No files in sources /home/kbuilder/.cache/synthtool/elixir-google-api/clients were copied. Does the source contain files?
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 102, in <module>
    main()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "/tmpfs/src/github/synthtool/synthtool/metadata.py", line 180, in __exit__
    write(self.metadata_file_path)
  File "/tmpfs/src/github/synthtool/synthtool/metadata.py", line 112, in write
    with open(outfile, "w") as fh:
FileNotFoundError: [Errno 2] No such file or directory: 'clients/search_console/synth.metadata'
2020-05-09 05:18:43 [ERROR] Synthesis failed
2020-05-09 05:18:43,044 autosynth > Synthesis failed
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 599, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 471, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 549, in _inner_main
    ).synthesize(base_synth_log_path)
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 118, in synthesize
    synth_proc.check_returncode()  # Raise an exception.
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 389, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/search_console/synth.metadata', 'synth.py', '--', 'SearchConsole']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth is still having trouble generating SearchConsole. :sob:
Here's the output from running synth.py:
2020-05-11 05:16:51 [INFO] logs will be written to: /tmpfs/src/github/synthtool/logs/googleapis/elixir-google-api
2020-05-11 05:16:51,835 autosynth > logs will be written to: /tmpfs/src/github/synthtool/logs/googleapis/elixir-google-api
Switched to branch 'autosynth-searchconsole'
2020-05-11 05:16:53 [INFO] Running synthtool
2020-05-11 05:16:53,479 autosynth > Running synthtool
2020-05-11 05:16:53 [INFO] ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/search_console/synth.metadata', 'synth.py', '--']
2020-05-11 05:16:53,479 autosynth > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/search_console/synth.metadata', 'synth.py', '--']
2020-05-11 05:16:53,668 synthtool > Executing /home/kbuilder/.cache/synthtool/elixir-google-api/synth.py.
On branch autosynth-searchconsole
nothing to commit, working tree clean
2020-05-11 05:16:53,733 synthtool > Cloning https://github.com/googleapis/elixir-google-api.git.
2020-05-11 05:16:54,178 synthtool > Running: docker run --rm -v/home/kbuilder/.cache/synthtool/elixir-google-api:/workspace -v/var/run/docker.sock:/var/run/docker.sock -e USER_GROUP=1000:1000 -w /workspace gcr.io/cloud-devrel-public-resources/elixir19 scripts/generate_client.sh SearchConsole
2020-05-11 05:16:58,259 synthtool > No files in sources /home/kbuilder/.cache/synthtool/elixir-google-api/clients were copied. Does the source contain files?
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 102, in <module>
    main()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "/tmpfs/src/github/synthtool/synthtool/metadata.py", line 180, in __exit__
    write(self.metadata_file_path)
  File "/tmpfs/src/github/synthtool/synthtool/metadata.py", line 112, in write
    with open(outfile, "w") as fh:
FileNotFoundError: [Errno 2] No such file or directory: 'clients/search_console/synth.metadata'
2020-05-11 05:16:58 [ERROR] Synthesis failed
2020-05-11 05:16:58,284 autosynth > Synthesis failed
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 599, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 471, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 549, in _inner_main
    ).synthesize(base_synth_log_path)
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 118, in synthesize
    synth_proc.check_returncode()  # Raise an exception.
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 389, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/search_console/synth.metadata', 'synth.py', '--', 'SearchConsole']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth is still having trouble generating SearchConsole. :sob:
Here's the output from running synth.py:
2020-05-11 15:19:47 [INFO] logs will be written to: /tmpfs/src/github/synthtool/logs/googleapis/elixir-google-api
2020-05-11 15:19:47,519 autosynth > logs will be written to: /tmpfs/src/github/synthtool/logs/googleapis/elixir-google-api
Switched to branch 'autosynth-searchconsole'
2020-05-11 15:19:49 [INFO] Running synthtool
2020-05-11 15:19:49,395 autosynth > Running synthtool
2020-05-11 15:19:49 [INFO] ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/search_console/synth.metadata', 'synth.py', '--']
2020-05-11 15:19:49,395 autosynth > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/search_console/synth.metadata', 'synth.py', '--']
2020-05-11 15:19:49,606 synthtool > Executing /home/kbuilder/.cache/synthtool/elixir-google-api/synth.py.
On branch autosynth-searchconsole
nothing to commit, working tree clean
2020-05-11 15:19:49,686 synthtool > Cloning https://github.com/googleapis/elixir-google-api.git.
2020-05-11 15:19:50,517 synthtool > Running: docker run --rm -v/home/kbuilder/.cache/synthtool/elixir-google-api:/workspace -v/var/run/docker.sock:/var/run/docker.sock -e USER_GROUP=1000:1000 -w /workspace gcr.io/cloud-devrel-public-resources/elixir19 scripts/generate_client.sh SearchConsole
/workspace /workspace
The mix.lock file was generated with a newer version of Hex. Update your client by running `mix local.hex` to avoid losing data.
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  certifi 2.5.1
  google_api_discovery 0.7.0
  google_gax 0.3.2
  hackney 1.15.2
  idna 6.0.0
  jason 1.2.0
  metrics 1.0.1
  mime 1.3.1
  mimerl 1.2.0
  oauth2 0.9.4
  parse_trans 3.3.0
  poison 3.1.0
  ssl_verify_fun 1.1.5
  temp 0.4.7
  tesla 1.3.3
  unicode_util_compat 0.4.1
A new Hex version is available (0.20.1 < 0.20.5), please update with `mix local.hex`
All dependencies are up to date
The mix.lock file was generated with a newer version of Hex. Update your client by running `mix local.hex` to avoid losing data.

22:19:53.927 [info]  FETCHING: https://searchconsole.googleapis.com/$discovery/GOOGLE_REST_SIMPLE_URI?version=v1

22:19:54.055 [info]  FETCHING: https://searchconsole.googleapis.com/$discovery/rest?version=v1

22:19:54.073 [info]  FOUND: https://searchconsole.googleapis.com/$discovery/rest?version=v1
Revision check: old=20200505, new=20200509, generating=true
Creating leading directories
Writing BlockedResource to clients/search_console/lib/google_api/search_console/v1/model/blocked_resource.ex.
Writing Image to clients/search_console/lib/google_api/search_console/v1/model/image.ex.
Writing MobileFriendlyIssue to clients/search_console/lib/google_api/search_console/v1/model/mobile_friendly_issue.ex.
Writing ResourceIssue to clients/search_console/lib/google_api/search_console/v1/model/resource_issue.ex.
Writing RunMobileFriendlyTestRequest to clients/search_console/lib/google_api/search_console/v1/model/run_mobile_friendly_test_request.ex.
Writing RunMobileFriendlyTestResponse to clients/search_console/lib/google_api/search_console/v1/model/run_mobile_friendly_test_response.ex.
Writing TestStatus to clients/search_console/lib/google_api/search_console/v1/model/test_status.ex.
Writing UrlTestingTools to clients/search_console/lib/google_api/search_console/v1/api/url_testing_tools.ex.
Writing connection.ex.
Writing metadata.ex.
Writing mix.exs
Writing README.md
Writing LICENSE
Writing .gitignore
Writing config/config.exs
Writing test/test_helper.exs
The mix.lock file was generated with a newer version of Hex. Update your client by running `mix local.hex` to avoid losing data.

22:19:55.313 [info]  Bumping patch
fixing file permissions
2020-05-11 15:19:56,068 synthtool > No files in sources /home/kbuilder/.cache/synthtool/elixir-google-api/clients were copied. Does the source contain files?
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 102, in <module>
    main()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "/tmpfs/src/github/synthtool/synthtool/metadata.py", line 180, in __exit__
    write(self.metadata_file_path)
  File "/tmpfs/src/github/synthtool/synthtool/metadata.py", line 112, in write
    with open(outfile, "w") as fh:
FileNotFoundError: [Errno 2] No such file or directory: 'clients/search_console/synth.metadata'
2020-05-11 15:19:56 [ERROR] Synthesis failed
2020-05-11 15:19:56,099 autosynth > Synthesis failed
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 599, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 471, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 549, in _inner_main
    ).synthesize(base_synth_log_path)
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 118, in synthesize
    synth_proc.check_returncode()  # Raise an exception.
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 389, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/search_console/synth.metadata', 'synth.py', '--', 'SearchConsole']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth is still having trouble generating SearchConsole. :sob:
Here's the output from running synth.py:
2020-05-12 05:19:24 [INFO] logs will be written to: /tmpfs/src/github/synthtool/logs/googleapis/elixir-google-api
2020-05-12 05:19:24,507 autosynth > logs will be written to: /tmpfs/src/github/synthtool/logs/googleapis/elixir-google-api
Switched to branch 'autosynth-searchconsole'
2020-05-12 05:19:26 [INFO] Running synthtool
2020-05-12 05:19:26,414 autosynth > Running synthtool
2020-05-12 05:19:26 [INFO] ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/search_console/synth.metadata', 'synth.py', '--']
2020-05-12 05:19:26,414 autosynth > ['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/search_console/synth.metadata', 'synth.py', '--']
2020-05-12 05:19:26,633 synthtool > Executing /home/kbuilder/.cache/synthtool/elixir-google-api/synth.py.
On branch autosynth-searchconsole
nothing to commit, working tree clean
2020-05-12 05:19:26,767 synthtool > Cloning https://github.com/googleapis/elixir-google-api.git.
2020-05-12 05:19:27,768 synthtool > Running: docker run --rm -v/home/kbuilder/.cache/synthtool/elixir-google-api:/workspace -v/var/run/docker.sock:/var/run/docker.sock -e USER_GROUP=1000:1000 -w /workspace gcr.io/cloud-devrel-public-resources/elixir19 scripts/generate_client.sh SearchConsole
/workspace /workspace
The mix.lock file was generated with a newer version of Hex. Update your client by running `mix local.hex` to avoid losing data.
Resolving Hex dependencies...
Dependency resolution completed:
Unchanged:
  certifi 2.5.1
  google_api_discovery 0.7.0
  google_gax 0.3.2
  hackney 1.15.2
  idna 6.0.0
  jason 1.2.0
  metrics 1.0.1
  mime 1.3.1
  mimerl 1.2.0
  oauth2 0.9.4
  parse_trans 3.3.0
  poison 3.1.0
  ssl_verify_fun 1.1.5
  temp 0.4.7
  tesla 1.3.3
  unicode_util_compat 0.4.1
A new Hex version is available (0.20.1 < 0.20.5), please update with `mix local.hex`
All dependencies are up to date
The mix.lock file was generated with a newer version of Hex. Update your client by running `mix local.hex` to avoid losing data.

12:19:30.332 [info]  FETCHING: https://searchconsole.googleapis.com/$discovery/GOOGLE_REST_SIMPLE_URI?version=v1

12:19:30.467 [info]  FETCHING: https://searchconsole.googleapis.com/$discovery/rest?version=v1

12:19:30.481 [info]  FOUND: https://searchconsole.googleapis.com/$discovery/rest?version=v1
Revision check: old=20200505, new=20200509, generating=true
Creating leading directories
Writing BlockedResource to clients/search_console/lib/google_api/search_console/v1/model/blocked_resource.ex.
Writing Image to clients/search_console/lib/google_api/search_console/v1/model/image.ex.
Writing MobileFriendlyIssue to clients/search_console/lib/google_api/search_console/v1/model/mobile_friendly_issue.ex.
Writing ResourceIssue to clients/search_console/lib/google_api/search_console/v1/model/resource_issue.ex.
Writing RunMobileFriendlyTestRequest to clients/search_console/lib/google_api/search_console/v1/model/run_mobile_friendly_test_request.ex.
Writing RunMobileFriendlyTestResponse to clients/search_console/lib/google_api/search_console/v1/model/run_mobile_friendly_test_response.ex.
Writing TestStatus to clients/search_console/lib/google_api/search_console/v1/model/test_status.ex.
Writing UrlTestingTools to clients/search_console/lib/google_api/search_console/v1/api/url_testing_tools.ex.
Writing connection.ex.
Writing metadata.ex.
Writing mix.exs
Writing README.md
Writing LICENSE
Writing .gitignore
Writing config/config.exs
Writing test/test_helper.exs
The mix.lock file was generated with a newer version of Hex. Update your client by running `mix local.hex` to avoid losing data.

12:19:31.768 [info]  Bumping patch
fixing file permissions
2020-05-12 05:19:32,512 synthtool > No files in sources /home/kbuilder/.cache/synthtool/elixir-google-api/clients were copied. Does the source contain files?
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 102, in <module>
    main()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "/tmpfs/src/github/synthtool/synthtool/metadata.py", line 180, in __exit__
    write(self.metadata_file_path)
  File "/tmpfs/src/github/synthtool/synthtool/metadata.py", line 112, in write
    with open(outfile, "w") as fh:
FileNotFoundError: [Errno 2] No such file or directory: 'clients/search_console/synth.metadata'
2020-05-12 05:19:32 [ERROR] Synthesis failed
2020-05-12 05:19:32,544 autosynth > Synthesis failed
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 599, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 471, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 549, in _inner_main
    ).synthesize(base_synth_log_path)
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 118, in synthesize
    synth_proc.check_returncode()  # Raise an exception.
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 389, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/search_console/synth.metadata', 'synth.py', '--', 'SearchConsole']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth passed, closing! :green_heart:

repo: googleapis/elixir-google-api