Confusion surrounding mdl-layout--overlay-drawer-button in Layout documentation

Apologies if I don't understand this correctly.
In the Layout documentation the description for the mdl-layout--overlay-drawer-button class is "Defines layout as having a button-activated drawer" but some of the codepen examples on that page have a hamburger icon that opens the draw but they don't use the mdl-layout--overlay-drawer-button class. I'm wondering if these are incorrect or maybe the description for mdl-layout--overlay-drawer-button should be clearer in describing what its used for.

I too have some questions around this. In the configuration options table, mdl-layout--overlay-drawer-button is referred to as being Required on outer div element, however the button is still displayed when the class is absent.
Also, mdl-layout-icon is also said to be Required on icon div, but apparently it's not required.
I'm trying to create a layout without a header, just a drawer (collapsible). Here's what I have:

    Title

      Link
      Link
      Link
      Link

Content here!

The result of that is, in fact, a collapsible drawer and no header. But a hamburger icon is being added (div.mdl-layout__drawer-button) without me specifying anywhere in the markup that I want this button. Is this expected behaviour? Is it because the drawer element necessarily needs an icon so it just adds it?
In this case it's absolutely fine for me, because I do want the element, but I worry that this is not expected behaviour and might change in future versions. It'd be great if some collaborator could clarify.
Many thanks.

Thanks opening this issue! Apparently, we missed some update on the docs here, as the mdl-layout--overlay-drawer-button doesn’t even exist (anymore) in _layout.scss.
@sgomes Can you confirm that the class is outdated and can be removed from the docs?

Yup, that class has been removed, and we should update the docs. Good catch, @SeanBannister!
As for the button being added automatically in your situation, @eduardoboucas, that is expected behaviour in the 1.x range and won't change until an eventual 2.x, so feel free to rely on it. We may add a class to disable it with a 1.x minor release, but the default behaviour will remain the current one.

Brilliant, thanks guys!

Awesome :) I just checked all documented layout classes to ensure there weren't any others that should be removed, everything else looks good.
In regards to @eduardoboucas question regarding mdl-layout-icon I also noticed an inconsistency, I've posted #1294 to discuss further.

@sgomes For what it's worth, here's my opinion about that behaviour. I've never used any UI libraries in production, particularly because I'm not comfortable with the idea of not being in control of the markup and the styles introduced in the page (not to mention that some of the libraries available out there have poorly implemented components). I'm spending some time experimenting with MDL because it's obviously built properly by very smart people, with standards and best practices in mind, so I wanted to give it a try.
I'm reading the documentation thoroughly to understand exactly what each class does in hopes of alleviating the concern I mentioned above, and the fact that an element is automatically being added to the markup without notice or information in the documentation doesn't really help.
I understand that the nature of HTML/CSS/JS makes it difficult to implement complex elements like this in a transparent and seamless way, but in my humble opinion the components should try to avoid making decisions/assumptions for the user as much as possible — even if that means asking people to add an extra class or element if they want that hamburger button, which will probably be the case for 90% of the people.

We have had similar feedback and reducing JavaScript black magic is one of the major goals vor v2. For now, it would be a breaking change we can’t really change this in the v1.x timeline.

@eduardoboucas Thank you for the detailed writeup and for the kind words! :)
Like @surma said, automatic element creation is something we definitely want to reduce as much as possible in v2, if not remove altogether. The drawer button and a few other layout bits are perfect examples of this, where we could probably do with a better balance between amount of boilerplate and maintainability/debuggability.
As for documentation, layout is probably in need of a thorough review of its docs. It could also benefit from extra documentation, such as a more task-driven, "getting started" set of guides, since it's the first thing developers have to deal with. I'll be working on both of those, so if there's anything specific you'd like to see, let me know!

@sgomes Thanks for that. I think that the guide you described in #1311 is a brilliant idea, I reckon it would help developers a lot.
I'll keep experimenting with the library and comparing it against the documentation, and I'll flag anything that doesn't seem clear or consistent. If there's any other way I can help on my end, please let me know.
Thanks!

The original issue this refers to (bad docs for mdl-layout--overlay-drawer-button) should be fixed with the merging of #1327.

Fixed in #1320


bumping js-slang

bumping js-slang

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 34.494%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
4588

Relevant Lines:
12381

💛  - Coveralls


JuliaArrays: VectorOfArrays

Dear Jim,
Awkward Arrays in Julia is a very interesting development which I am happy to see!
I just wanted to point you to a similar Julia project called ArraysOfArrays.jl. There is an implementation of a vector of arrays with different sizes, which might be interesting for you: VectorOfArrays.
I am very sorry for the noise in case you are already aware of this project.
Best, Peter

Hi Peter, I made sure Jim is aware of the package, in some ways you can replace ListOffsetArray with it, but one goal is to have compatible memory layout with python awkward, which means this package wants offset to start 0-index, of course you hack a OffsetArray into VectorOfVectors, but I won't say that's super clean.
Another thing is that Awkward array composes in multiple ways, and having total control over all types is necessary, which means even if this package tries to re-use ArrayOfArrays.jl, it probably need to wrap it again, that adds a bit messiness too.

Since ArraysOfArrays and VectorOfArrays are known standards in the Julia world, it would make sense to have some conversions to and from it, for the subset of AwkwardArray that fits their data models.
I still need to make a list of desiderata for this project, but the main purpose is to form a zero-copy bridge with Python Awkward Arrays, for use with PyJulia and PyCall.jl. On the Julia side of the bridge, we should connect to Julia-native ways of doing things, of course. (Python Awkward Array is already a kind of spider...)
One of the things that will be on the feature list will be Julia-side conversion between AwkwardArray and arrow-julia. If UnROOT.jl emits either AwkwardArray or Arrow, then we'd have a replacement for Uproot that can navigate ROOT metadata more quickly, solving this problem: HSF/PyHEP.dev-workshops#15.
That's where this is going: providing reasons to duck out of Python into Julia for short trips so that a mostly-Python data analyst is motivated to learn about Julia in ways that don't involve throwing out their existing infrastructure (as described here). They may eventually decide to become mostly-Julia data analysts, but I'll leave that up to them. The thing is, I don't think many people would even try Julia if they have to adopt it wholesale, right away.
(That was Java's attitude: to promote Java, they reimplemented the entire world in Java. Now it's like a walled garden that's hard to break out of: JNI is not very reliable. Julia does not have this attitude, particularly since it's interested in bare-metal access, rather than a virtual machine, and PyJulia/PyCall.jl demonstrate that openness. I'm sure it's easy to pass rectilinear arrays between Julia and Python, but something more is needed for the irregular arrays. We could always use Arrow at the interface, but there are gaps that an AwkwardArray implementation would fill.)


Spyder keeps crashing after pip package install

I tried to install the yahoo-finance package via pip. It successfully installed, but Spyder now crashes every time before it is opened. I tried resetting settings etc to no avail. Additionally, I am unable to uninstall the yahoo-finance package. It returns UTF-8 encoding errors that it can't decode certain bytes. I've not had problems with other implementations of Python with this package.

This doesn't seem to be a Spyder problem but an installation one. I don't know how we could help here.

I'm sorry but I'm going to close this one. It really seems an installation problem.

I believe it was. I did a clean install and spyder (and the installation of
the package) worked as expected.
On Jul 21, 2015 5:22 PM, "Carlos Cordoba"<EMAIL_ADDRESS>wrote:

Closed #2554 https://github.com/spyder-ide/spyder/issues/2554.
—
Reply to this email directly or view it on GitHub
https://github.com/spyder-ide/spyder/issues/2554#event-361689460.


~!*Free Roblox promo codes list 2024 on Purchase via Check Out

Obtaining free Roblox codes, such as Robux (the in-game currency) or promotional items, can be achieved through several legitimate methods. Here’s how you can get them:
►🔴👉👉CLICK HERE TO FREE GENERATOR
►🔴👉👉CLICK HERE TO FREE GENERATOR
Official Roblox Promotions
Roblox Events: Participate in official Roblox events and promotions that often provide free items and occasionally Robux. Keep an eye on the Roblox Blog or the Events Page for updates.
Promo Codes: Roblox regularly releases promo codes that can be redeemed for free items. Follow the official Roblox social media accounts on Twitter, Facebook, and Instagram to stay updated on new codes.
Microsoft Rewards
Earn Points: Join the Microsoft Rewards program and earn points by using Bing, completing quizzes, and performing other activities.
Redeem Points: Redeem your points for Roblox gift cards, which can then be used to get Robux.
Google Opinion Rewards
Complete Surveys: Download the Google Opinion Rewards app and complete short surveys to earn Google Play credits. You can use these credits to purchase Robux in Roblox.
Reward Websites and Apps
Swagbucks: Earn points by completing surveys, watching videos, shopping online, and playing games. These points can be redeemed for Roblox gift cards.
InboxDollars: Similar to Swagbucks, you can earn cash by participating in surveys and other activities, which can then be exchanged for Roblox gift cards.
Gift Card Giveaways
Social Media Giveaways: Follow Roblox content creators and influencers on platforms like YouTube, Twitch, and Twitter. They often host giveaways where you can win Roblox gift cards.
Online Communities: Join Roblox communities on Reddit, Discord, or other platforms. Members sometimes share codes or host giveaways.
Special Promotions and Offers
Retailer Offers: Sometimes, retailers offer special promotions where you can receive bonus Roblox gift cards with the purchase of certain items. Keep an eye on stores like Walmart, Target, and GameStop for such deals.
Roblox Premium Membership
Monthly Robux: Subscribe to Roblox Premium to receive a monthly allotment of Robux. Premium members also get additional benefits such as discounts and the ability to trade items.
Caution Against Scams
Be wary of any websites, apps, or individuals claiming to offer free Robux or Roblox gift cards in exchange for personal information, completing dubious tasks, or downloading software. Many of these offers are scams designed to steal your information or compromise your accounts.
Redeeming Roblox Codes
If you have a legitimate Roblox code, here’s how to redeem it:
For Robux or Gift Card Codes:
Go to the Roblox Website: Visit the Roblox Redeem Page.
Log In: Log in to your Roblox account.
Enter the Code: Input your gift card or promo code in the provided field.
Redeem: Click “Redeem” to apply the credit or item to your account.
For In-Game Promo Codes:
Go to the Promo Code Redemption Page: Visit the Roblox Promo Codes Page.
Enter the Promo Code: Input your promo code in the provided field.
Redeem: Click “Redeem” to claim your free item.


A new feature as a workaround hack to unavailable offset support in Arrow Java

Is your feature request related to a problem or challenge? Please describe what you are trying to do.

For offset-ed offset buffer of variable-sized binary array, the valid FFI output is to record the offset buffer's offset into FFI's offset field and expose the beginning of the buffer as the pointer. So the consumer can calculate correctly the length of data buffer.
However, due to Arrow Java's issue: https://github.com/apache/arrow/issues/42156, Arrow Java does not support offset field in the FFI output. It causes no sliced binary array can be passed between arrow-rs and Arrow Java.
To workaround this issue, we have to enforce offset-ed offset buffer to be exposed at the sliced buffer's beginning. When calculating the length of data buffer, we assume the first element of the offset buffer is always 0 (this is how Arrow Java and arrow-rs do).
This is a hacky solution and should be removed once Arrow Java supports offset field in the FFI output.
Describe the solution you'd like

Describe alternatives you've considered

Additional context

label_issue.py automatically added labels {'arrow'} from #5964


Ensure cross-repo key format consistency

[ ] Based on Sui's PR for changes in sui-types or sui-keys or fastcrypto pointer update, an sui-operation CI should be triggered. (https://github.com/MystenLabs/sui-operations/actions/runs/3847824980 how is this triggered right now?)
[ ] Update/Add documentation in one place how to run the following locally (Q: why all these can fail when running in Sui works fine?) :

sui benchmark
narwhal benchmark
private testnet
devnet faucet
staging docker
stress test
cluster test

[ ] Do not hardcode any keystore in sui-operations in statics/ https://github.com/MystenLabs/sui-operations/pull/878
[ ] Ensure the new addresses are generated (how?)

https://github.com/MystenLabs/sui-operations/pull/893/files
https://github.com/MystenLabs/sui-operations/pull/880/files

https://github.com/MystenLabs/sui/pull/8766


Feature: Show/Hide Screens

Ability to hide or show a screen on the canvas. Most likely makes sense in the right-click context menu for the sidebar and when clicking on a screen.

Add menu item to context menu to Show or Hide screen (should change title based on its current state)
Add Vuex Store property to artboards that defines their show/hide state
Add Vuex Store methods to toggle the state of the hidden/shown artboard

@nwittwer I have managed to implement this feature, but forgot to branch off from dev, that's why I closed the pull request. I've branched off from dev now, but when I run yarn run dev, im getting an error:
"Cannot read property 'length' of undefined"
It's about artboards.length.
Any idea how I can fix it so that I can implement my solution? :)

@emilkowalski Sorry about the late comment about branching from dev, I'll try and update the readme to make that more straightforward.
To fix that other issue you mentioned, try clearing your local storage by opening the DevTools > Application > Local Storage > file:// > and then delete the Reflex key. After reloading the app it should work again. I'd like to add an OS menu item to easily delete this, because I think this error happens when the localStorage data model has changed. It is a migration issue. Please let me know if it isn't fixed after that.
I haven't been able to try it out yet, but I think your solution seems good! Please go ahead and try the fix and then make another PR :)


Controller support in Mac OS Big Sur

Godot version:
Godot Engine 3.2.3.stable.official
OS/device including version:
Mac OS Big Sur 11.0.0 & 11.0.1
Apple M1 Chip
PS4 Dualshock controller (wired or wireless)
Issue description:
Controller input is not detected after the first few frames of starting the game in both the editor and the exported Mac OS build.
Steps to reproduce:

Open attached reproduction project on a Mac OS Big Sur device
With controller plugged in, hold down the playstation "X"/"cross" button and play the project
"Hello world" should be printed in the console. If you press "X"/"cross" button again, it will not print
Unplug and re-plug the controller. If you re-plug the controller while holding "X"/"cross", the console will print "Hello world" once again.

Minimal reproduction project:
Controller-bug.zip

Mac OS Big Sur 11.0.0 & 11.0.1
Apple M1 Chip

Unrelated to this issue, but does Godot work as expected when run via x86 emulation (Rosetta)?

I have checked it on x86-64 macOS 11.0.1 (20B29) with Dualshock 3 - controller is detected and working normally. It's either DS4 mapping issue or it's M1 macOS issue or Rosetta issue.
Try using official demo to check what's detected - https://github.com/godotengine/godot-demo-projects/tree/master/misc/joypads and https://generalarcade.com/gamepadtool/ to generate correct mapping (and check if it's working with it or not).
Also, if it's Rosetta issue, you can try building native ARM binary or try using my build https://bruvzg.github.io/media/files/Godot_v3.2.4-beta2_osx.arm64.zip, it's ad hoc signed and not tested on real M1 hardware. I'll wait for a week or two (or for the second batch of devices, depending on reviews) before getting one.

@bruvzg Looks like it was the native Rosetta issue!
I ran the official demo and had no inputs detected. Downloaded your build of godot and ran the same demo, and everything worked perfectly (aside from vibration).

@Calinou It doesn't look like I'm able to force the godot application to run under rosetta emulation.
I tried going to Applications -> Godot -> Get Info and looked for the "Open using Rosetta" option, but it was not there. Do you know of another way I can check for you?

@riley-turben How are you running the application under Rosetta if the option isn't provided?

How are you running the application under Rosetta if the option isn't provided? I don't understand.

Option should be there only if it's Universal app, official Godot releases are x86-64 only and will run always run under Rosetta.

@riley-turben Would you be able to test this "universal" (x86_64 + arm64) build of Godot 3.2.4 beta 2? https://downloads.tuxfamily.org/godotengine/3.2.4/beta2/Godot_v3.2.4-beta2_osx.universal.zip
It's not directly related to this issue as you already tested @bruvzg's arm64 build successfully, but this one is made on our official build containers and I'd like to validate that it works OK on Silicon. (And you might also be able to check if the "Open using Rosetta" option is available with that build.)

Sure thing, I'll make some time to test it tomorrow.

@akien-mga I tried opening straight after unzipping, selected "Open using Rosetta", and also tried Right Click -> Open and all resulted in an error that the application was damaged.

though the arm64 binary should have a dummy signature

I have extracted arm binary from the osxcross built universal one, and seems like it's "dummy signing" do not produce valid signature. Neither do ldid, if used on any other executable manually.
Even if signing the whole bundle is not required, it's not going to work.

Some tests with simple int main() { return 0; } code:
Xcode build → 16818 bytes executable, valid signature. 16536 after stripping signature.
Xcode build, signature stripped, resigned with ldid -S FILE → 17280 bytes, not signed (invalid signature).
Xcode build, signature stripped, resigned with codesign -s - -f FILE → 34960 bytes, valid signature.
osxcross build → 33386 bytes executable, not signed (invalid signature). 32920 after stripping signature.
osxcross build, signature stripped, resigned with codesign → 51472 bytes, valid signature.

Can confirm this bug is still present in Godot 3.2.4 RC5 on Big Sur 11.2.2 and a Dualshock 4 controller.

If this is a Rosetta issue, what should be done on the engine side to resolve this?


Using Object Data renders a blank grid

Following the sample code and the documentation I tried to swap out the sample array for an object,
The grid renders each row but the data is blank - I checked the columns map and tried the sample data from the documentation (only replacing the myData in the sample) and it doesn't work.
Is there something in the column definition or setup call that needs changing too or is this a bug?

The only changed needed should to add a field attribute to each column. This tells it which attribute of the object data to display in each column.
If you did that and it still doesn't work, it would be helpful if you could post some sample code that does not work.

Totally right - I missed that in the documentation. I did check - honest :)
Might be worth adding a quick comment above the json example that you need to specify the fields to stop some other idiot doing the same but in fairness it's there under Define Columns!

Not a problem. I adjusted the sample code for the future.


refactor: Privcy.css ✨

Closes
Closes #1371
Description
I have mentioned all the things in issue what I have make changes i have removed unused classes and use best practices for writing CSS that make code clean and clear
Checklist:

[x] I have linked the PR to the correct issue.
[x] I have read the Contribution Guidelines
[x] I have built and tested the changes, and they do not break or show any errors.

Hey @Vaishnavi-Patil2211  Please Review Pr and Merge it ✨


decimalPlaces = 0 doesn't work correctly, cannot get rid of decimals

First, thank you for a great package.
There is a small bug that at least bothers our project when we get float data for the Y-values and we don't want to render decimals.
https://github.com/indiespirit/react-native-chart-kit/blob/master/src/abstract-chart.js#L85
const decimalPlaces = this.props.chartConfig.decimalPlaces || 2
if I provide decimalPlaces = 0 then the code evaluates: 0 || 2 => 2
I can workaround this with decimalPlaces = 0.1 to get rid of decimals but I don't think this is proper way to do it. (thus there would be a call for example 1.2345.toFixed(0.1))

that's an easy fix, I changed it to this.props.chartConfig.decimalPlaces === undefined ? 2 : this.props.chartConfig.decimalPlaces

I will try to release the fix tonight.

available in<EMAIL_ADDRESS>

@Hermanya Did this possibly regress? I'm using the LineChart sample code in the README and when I change decimalPlaces to anything, and it always shows up with 2 decimal places. I've tried setting it to 0, 1, 3, and 521, and it seems to ignore any value I throw at it. I can fix it and submit a PR, but just wondering if anyone can possibly do a quick sanity check to verify that changing decimalPlaces prop anywhere doesn't do anything? Let me know if you see anything obvious.

It's very possible this is a regression, because yesterday I merged code touching that part. But it looked good to me. I'd very much appreciate a PR to fix this 😁

Can you point me to the merge so I can have a hint on where to look?

https://github.com/indiespirit/react-native-chart-kit/pull/253

Awesome. I'll look into it today

Ok I think I see the problem, but I have a question that hopefully you can answer.
Right here, we're missing decimalPlaces so it's essentially dropped. I found more than one place where I can inject it back in, but I think I need to know the intention of the chartConfig prop vs the base level LineChartProps.
In the README and also in the typescript types, decimalPlaces belongs to the ChartConfig type, so I can do something like this when calling renderHorizontalLabels, (or simply inject this.props.chartconfig.decimalPlaces).
Anyway, if you're not in this context and what I'm saying doesn't make any sense, I have a much simpler question: What's the logical separation for ChartConfig vs LineChartProps?
At first glance, it seems like ChartConfig should be used for svg's Text styling attributes, but I don't know if that was the intent. If I knew the intended purpose of ChartConfig, I think I can put the decimalPlaces in the correct place. Right now, it's the same amount of work to move it up one level as opposed to keeping it in ChartConfig, so if it doesn't matter either way, I would like to put it inside the type that the package logically intended to. Hopefully that makes sense the way I explained it. Any insight would be much appreciated. Thanks!

Same problem I had to modify the source with
(this.props.chartConfig && this.props.chartConfig.decimalPlaces) != undefined ? (this.props.chartConfig && this.props.chartConfig.decimalPlaces) : 2


burstSize should be configurable (can't be built now)

Done by https://github.com/intel-go/nff-go/commit/bae0b7303f9c188348d98d309b6d3c0410c27437


angular.mock.module can't find the angularjs module defined

I posted on stack overflow about this issue. It seems to be foundation-apps is the cause somehow. When calling the angular.mock.module function no module is loaded. I have posted an example github project to show the problem, the link to github is on the stack overflow post. I am using foundation-apps, karma and jasmine, in an angularjs project.
http://stackoverflow.com/questions/29833819/foundation-apps-angular-site-integration-with-karma-jasmine-unit-testing

There is not enough context in this question to help in a meaningful way. Please don't cross - post - StackOverflow is a proper place for general support questions like this one. If you believe that there is a bug in the AngularJS code please provide a minimal, live reproduce scenario using plunker, jsfiddle or similar.

I have received no responses on stack overflow. This problem requires an entire site to work out the problem. I need more information as to how angular.mock.module is given the module that is loaded by karma or jasmine but I don't even know which of the 2 would load the module. Point me in the right direction at least instead of just closing this, please?

This problem requires an entire site to work out the problem.

This is the crux of the problem - we don't have access to this site nor free cycles to debug entire site - you need to narrow down the problem a bit. Will be happy to re-open if you do so.
I'm not surprised that that you didn't receive answers on SO as you are effectively asking people to debug the entire up without providing adequate context.

I understand that but I was hoping that someone could at least say here is a good place to start investigating the problem.
Thanks for all the help. I hope your entire support team isn't just wonderful.

@gokussx4 I would be really happy to help but it is not even clear what you are asking....

I need more information as to how angular.mock.module is given the module that is loaded by karma or jasmine but I don't even know which of the 2 would load the module

It is really hard to understand what is a problem - do you have an issue with file loading in Karma? Module definition not available under unit test? Something else? Common, help people to help you... Share a minimal code snippet or create minimal project on GitHub.
It is not that people don't want to help you - simply we don't know how since there is not enough context and your question is not clear...

No angular modules load when calling angular.mock.module('application'), how can I figure out why it is not loading since there are no errors thrown or messages to support why?
I created this very basic foundation-apps site to show the problem thinking that it would be easier to find the issue I am seeing in the larger web site I initially found the problem in. Since I have no idea which piece of code or component of js is the issue its impossible to post snippets that would be useful. Here is the best summary with snippets I can provide:
I posted a bare minimal project on github that uses foundation-apps, karma, jasmine and angularjs, it includes just one module. Github link:
https://github.com/gokussx4/websites/tree/master/FATest
The angular scripts load up in the browser. (angular.module resolves 'application' just fine)
The angular module 'application' has just one controller defined.
Gulp is used to "build" the site and essentially minify the javascript.
In the karma config file the build folder is referenced in order to minimize the number of js files refereneced as well as the angular-mocks.js in the bower_components folder.
Script parts:
Here is the app.js script:
(function() {
'use strict';
angular.module('application', [
'ui.router',
'ngAnimate',
//foundation
'foundation',
'foundation.dynamicRouting',
'foundation.dynamicRouting.animations'

])
.config(config)
.run(run)
;
config.$inject = ['$urlRouterProvider', '$locationProvider'];
function config($urlProvider, $locationProvider) {
$urlProvider.otherwise('/');
$locationProvider.html5Mode({
  enabled:false,
  requireBase: false
});

$locationProvider.hashPrefix('!');

}
function run() {
FastClick.attach(document.body);
}
})();
(function(){
angular.module('application')
.controller('HomeController',HomeController);
HomeController.$inject = ['$scope', '$stateParams', '$state', '$controller'];
function HomeController($scope, $stateParams, $state, $controller){
angular.extend(this, $controller('DefaultController', {$scope: $scope, $stateParams: $stateParams, $state: $state}));
$scope.username = 'user123';
$scope.password = '12345';

};
})();
Here is the karma.conf.js file:
// Karma configuration
// Generated on Thu Apr 23 2015 16:15:46 GMT-0400 (Eastern Daylight Time)
module.exports = function(config) {
config.set({
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '',

// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jasmine'],

// list of files / patterns to load in the browser
files: [
  'build/assets/js/foundation.js',
  'build/assets/js/templates.js',
  'build/assets/js/routes.js',
  'build/assets/js/app.js',
  'bower_components/angular-mocks/angular-mocks.js',
  'tests/**/*.spec.js'
],

// list of files to exclude
exclude: [
],

// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
},

// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress'],

// web server port
port: 9876,

// enable / disable colors in the output (reporters and logs)
colors: true,

// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,

// enable / disable watching file and executing tests whenever any file changes
autoWatch: false,

// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['Chrome'],

// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: false

});
};
Here is the jasmine test that is loading up with karma:
describe('testing home', function(){
beforeEach(module('application'));
var $controller;
beforeEach(inject(function($controller){
$controller = $controller;
}));
describe('test password', function(){
it('better be more than 5', function(){
var $scope = {};
var controller = $controller('HomeController', {$scope: $scope});
expect($scope.password.length).toBeGreaterThan(4);
});
});
});
If I call angular.module('application') the module loads just fine in the unit test. If I debug the angular.mock.module function I find that there are no modules loaded at all. I was expecting an exception or console message stating something couldn't be loaded.
I am having a hard time debugging the angular.mocks libraries to find out why it hasn't loaded even though angular.module('application') finds the module just fine.
Is this more along the lines of what you would like to see regarding discussion of issues? I apologize as I thought a simplified github project would be easier to diagnose.

As I originally pointed out I believe foundation-apps is somehow the reason for the failure because when you create an angularjs site without foundation-apps then angular.mocks.module function can find the module.
I looked at the dependencies of each bower.json file and noticed that foundation-apps requires "angular": "~1.3.4", so 1.3.x basically.
Angular-mocks has a dependency of "angular": "1.3.15", so it needs exactly that version of angular.
Could this be a version conflict? I didn't think so at first because the site seems to function fine (bindings, controller calls, etc).


how to add non-existent JAR in the maven central repository on Action Workflow ?

Description:
I have Oracle's jdbc JAR in my local Maven cache at ~ / .m2/repository and the build works locally on my PC. It happens that in the build of GitHub Actions it does not work because the JAR does not exist in the central repository
Task version:
latest
Platform:

[ ] Ubuntu
[X] macOS
[ ] Windows

Runner type:

[X] Hosted
[ ] Self-hosted

Expected behavior:
Build finished OK
Actual behavior:
Build fail

Now works for me using:
mvn deploy:deploy-file \
  -DgroupId=com.oracle.database.jdbc \
  -DartifactId=ojdbc8 \
  -Dversion=<IP_ADDRESS> \
  -Dpackaging=jar \
  -Dfile=ojdbc8.jar \
  -DrepositoryId=MY_SERVER_ID \
  -Durl=https://maven.pkg.github.com/USER/REPOSITORY

With my ~/.m2/settings.xml SERVER segment:
    <server>
      <id>MY_SERVER_ID</id>
      <username>USER</username>
      <password>MY_SECRET</password>
    </server>

Using *mvn CLI with proper configuration in settings.xml works.


Create security.txt and add a GH Actions workflow to remind you of its updates

Summary

Introduce security.txt defined in RFC 9116 as https://studio.giselles.ai/.well-known/security.txt.
Since security.txt needs to be updated periodically, I also created a GitHub Actions workflow to automatically create a reminder issue.
Testing

I set the Expires in security.txt to the end of this year, 2024, so that an update reminder issue will be created on 12/1/2024, and that will be the test.
Other Information

Please let me know if there are any settings needed on vercel.

📝
I will modify this PR so that the security.txt is applied only to the cloud version.


New Examples from Lawler

Reference Issues/PRs
#2
New examples from Finite Markov Chains and Optimal Stopping sections from the reference book added.

Codecov Report

Merging #11 (8fce590) into dev (bb8bdca) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##               dev       #11   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            4         4
  Lines          149       151    +2
  Branches        29        31    +2
=========================================
+ Hits           149       151    +2

Impacted Files
Coverage Δ

pyrandwalk/pyrandwalk_obj.py
100.00% <100.00%> (ø)

pyrandwalk/pyrandwalk_param.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b26bb85...8fce590. Read the comment docs.


Support GraphQL v1.13

There's presently one failing test involving a late-bound type when running with GraphQL v1.13. Let's assess and fix/ignore to expand gem compatibility down to GraphQL Ruby v1.13.

Resolved by https://github.com/gmac/graphql-stitching-ruby/pull/45


change: [UIE-8228] - DBaaS Resize GA: Enable Downsizing, update node presentation

Description 📝
DBaaS Resize GA: Enable Downsizing (horizontal and vertical) and enable 'Shared' tab for resizing 2N cluster. Updated node presentation.
Changes  🔄
Database Resize:

Enable Downsizing (horizontal and vertical)
Enable the 'Shared' tab for resizing 2N cluster
Enable 'Current Plan' for selection

Updated node presentation in the 'Database Summary' and 'Database Resize' tabs.
Target release date 🗓
12/10/24
Preview 📷

Before
After

How to test 🧪
Prerequisites

dbaasV2 feature flag set to GA
choose a new database

Verification steps

Select the new database.
Navigate to the Database Resize tab.
Database Cluster is available for downsizing (both horizontal and vertical)
Shared Tab is enabled for 2 Nodes Cluster
Database Resize > Current configurations: the Nodes presentation is updated
Summary tab: the Nodes presentation is updated

As an Author, I have considered 🤔

👀 Doing a self review
❔ Our contribution guidelines
🤏 Splitting feature into small PRs
➕ Adding a changeset
🧪 Providing/improving test coverage
🔐 Removing all sensitive information from the code and PR description
🚩 Using a feature flag to protect the release
👣 Providing comprehensive reproduction steps
📑 Providing or updating our documentation
🕛 Scheduling a pair reviewing session
📱 Providing mobile support
♿  Providing accessibility support

[x] I have read and considered all applicable items listed above.

As an Author, before moving this PR from Draft to Open, I confirmed ✅

[x] All unit tests are passing
[x] TypeScript compilation succeeded without errors
[x] Code passes all linting rules

Can you resolve the conflicts? We just fixed some DBaaS test flake in https://github.com/linode/manager/pull/11332 and are hoping to keep it not flakey

Can you resolve the conflicts? We just fixed some DBaaS test flake in #11332 and are hoping to keep it not flakey

@bnussman-akamai , resolved

Confirming failed clone-linode.spec.ts passed in local and I think service-transfer is not relevant to this PR.


Implementation parity (SpatialConnect object and services)

Status
READY
JIRA Ticket
SPACON-442
Description
Parity refactor to match iOS for SpatialConnect object and services
Todos

[ ] Tests
[ ] Documentation
[ ] License

Steps to Test or Reproduce
Outline the steps to test or reproduce the PR here.
git fetch --all
git checkout <feature_branch>
./gradlew connectedCheck

@boundlessgeo/spatial-connect

👍


Cannot regenerate golden files for executor_test.go from scratch

This is a bug-like issue on development of this plugin.
What happened:
I want to regenerate *.golden.txt files under pkg/timestream/testdata in order to send a pull request. So I prepared grafanaDB.DevOps table on my own AWS account using "sample database" feature (described below), and commented out the following line, and run TestGenerateTestData.
https://github.com/grafana/timestream-datasource/blob/0832f2597e8717654fa501fb0e9dbe1269b3f2be/pkg/timestream/executor_test.go#L63-L64
But the run is failed with messages, for example, execute failed ValidationException: line 5:8: Column 'availability_zone' does not exist. This is because some queries want certain column names which my records in grafanaDB.DevOps don't have.
https://github.com/grafana/timestream-datasource/blob/0832f2597e8717654fa501fb0e9dbe1269b3f2be/pkg/timestream/executor_test.go#L110
So... it seems these test cases for pkg/timestream/executor_test.go assume some private records in grafanaDB.DevOps table. I may guess what columns are needed and add them to my table, but it's a bit tired to me.
Therefore, could someone add a timestream-write script to set up a table for executor_test.go to this repository and write a how-to-test document? Or, would someone simplify test cases to use names only in the sample database?
What you expected to happen:
I can regenerate test data easily.
How to reproduce it (as minimally and precisely as possible):

Create a sample database of Amazon Timestream with following configs:

region: us-west-2
database name: grafanaDB
sample table: DevOps with single-measure records

Comment out t.Skip("Integration Test") in executor_test.go.
Run test case TestGenerateTestData.

Screenshot of Management Console to create the database:

Environment:

Plugin version: v2.1.0 (0832f2597e8717654fa501fb0e9dbe1269b3f2be)
User OS: macOS
Go: go1.18.4 darwin/amd64

Hello! Thanks for reporting this issue! I took a look at this as part of triaging new tickets, and also ran into issues trying to run this "TestGenerateTestData" function. I haven't looked deeply enough to identify what's going on, but I think at the very least the suggestion here for a help doc seems warranted. Going to move this to our backlog as it seems worth investigating although I'm not sure on a specific timeline for a fix yet. Will bring it up with the team.


Responsive Design Fix for Laptop Screen sizes

I understand it's probably early for this, but better catching up to this sooner than later.
The UI elements seem to align perfectly when the resolution is 1080p and above which is okay, however most laptops are usually smaller in the ~768 - 900 px range.
For example below, the thumbnail is cut and the search queue takes up too much space.

A workaround I'm using now is to reduce page zoom (🔎75%), at the cost of having smaller icons and fonts to deal with.

Hello @gerryflux
Thank you for raising this issue. I built the project on a 1920x1080 resolution screen. That explains why the UI looks okay for high resolution screens.
I will fix the responsiveness for lower resolutions in the next release.
Thank you.

Done ✅✅✅


Suggestion for "Build errors caused by long path and file names"

I recently hit this issue and was able to partially resolve it by following the suggestion of moving the project closer to the root of the drive. However the npm-cache folder was still an issue as it lives by default in C:\Users\username\AppData\Roaming\npm-cache.
I was able to get around this by creating a .npmrc file in my project and specifying a folder that lives in my project (excluded with .gitignore). Another option is to move it for the user profile or possibly the entire machine.
I'd be happy to write something up for this if it is useful and a particular approach is preferred!

Thanks for the suggestion!  Added to the docs.


[RFC][TIR] TIR Non-scalar Constants

added the markdown
added a commit msg header

Change-Id: I0fb3e6b97242ba219c157c9abe5184f14a9f8eff

cc : @tqchen @junrushao1994 @jroesch @areusch

Thank you so much for the RFC!! Will read tomorrow ❤

Thanks @manupa-arm for the nice RFC! I left a few questions, and happy to discuss more!

@junrushao1994 please follow up on the comments here

How can we move this forward - this appears to be getting stalled ?

@junrushao1994 has followed up with individual comments and its pending my response :)
I ll do it next once I get some free cycles.

@junrushao1994 ,
For A.)
The reason is constants represent something intimate to the compute and requiring space. Moreover, in the scheduling passes where we want to do slicing in loops where the weights get sliced and need to undergo transformations (e.g. compression), it will need to keep on reading attributes and writing attributes throughout such passes. That seems like we are abusing attributes for something that should have been able to express in TIR.
I guess the main difference is unlike the existing passes, the constant will be treated as a primary entity in TIR rather than being treated as another input. Therefore, I would argue against putting constants as attributes of IRModule.
For B.)
I believe this support is already implemented in the PR : https://github.com/apache/tvm/pull/8472
https://github.com/apache/tvm/blob/7458e2ddd22e14ba9f58f3c8dd3b5842b03a9aab/tests/python/unittest/test_tvmscript_roundtrip.py#L2895-L2911
For C.)
I feel if the constants do not get embedded in the compilation artifact of TVM, we should avoid 'linking' the constant into the device PrimFunc, however, the host PrimFunc could codegen it in an appropriate section and pass a pointer to device PrimFunc if the non-volatile memory is accessible by the device. Otherwise, the host PrimFunc would need a cache_read stage to copy it to local storage before passing it onto the device PrimFunc.
For D.)
By default, the data could be generated into .rodata section, however USMP could allow user to place it in a different section that goes to different memory in the case where SoC have multiple non-volatile memories. See U3 here : https://github.com/apache/tvm-rfcs/blob/c520a3912279bcd3c432dafd4070661f614882cf/rfcs/0009_Unified_Static_Memory_Planning.md
For E.)
As I replied the original discussion, I think after the initial stage we could revisit to insert a new pass to do this optimization.
I believe I have answered all your questions. Let me know what you think.

Thanks @manupa-arm for the reply! These are all good points.
Again, I am supportive of this change, and the reason I am asking so many questions is that it is a change to the generic IR, which is supposed to be the most stable part of the system. As a generic concept, "constant" is supposed to be something people will assume to work generically in the future. Therefore, I wanted to be serious and make sure it does work generically.
On A). As the primary author in TensorIR scheduling, I feel like reading/writing attributes seem to be expected behavior by design of our unified IR infrastructure, I would love to learn more about why these are issues here.
On B). Thanks for supporting this in TVM script! Right now it's a POC for small 1-d array that eases out the ndim/shape/dtype information, and the NDArray actually gets flattened, but I definitely see a path that we can complete this feature. The reason I am asking about "parsing tensors" is that tensors can be large and not sure they could fit in python's AST (too slow or something). In Relay, the workaround is to treat tensors as metadata, so that it could be parsed in a separate file with a much faster parser.
Again, would you to hear about your opinions about what the best design is to parse tensors in TVM script, which handles:

multi-dimensional tensors with different dtypes
large tensors
numerical precision issues
do we want to support parsing from a different file?

On C). I think we are on the same page, but to clarify, cache_read on GPU isn't able to copy CPU data to GPU. To move data correctly across devices, we need to call TVM's C API TVMArrayCopyFromTo as I suggested. To summarize, there is some way where we can get tir.allocate_constant to support all devices, on CPU it's pretty easy, and on GPUs, we need to link those parameters in host-side PrimFunc and call TVM's C API to put them on device accordingly.
On D). Thanks for clarification! I am definitely not an expert on these SoCs. I think it's cool as long as we have control in compilation time 😄
On E). Yeah I think we are on the same page.
To summarize the discussion, I think we have consensus on most of the points, but the final sticky point here is about the unified IR infrastructure. Currently Relay has support for constant NDArrays but TIR doesn't, and I would hope to have a unified representation of such constants, because divergence is always less desirable (and TVM developers did pay the price in divergence before). It would be nice if all of us could think of this representation, as well as text format, serialization of these constants.
Here is my proposal:

Store constants in IRModule attributes for both Relay and TIR
Refer to constants in the IRModule in tir.allocate_constant as well as relay.constant
Serialization infra supports dumping/loading constants inline or in a separate file
On GPU and other devices, insert TVM's C API call to copy from host-side constant arrays to CUDA's global memory.

Note that I am not indicating that we have to get everything implemented initially, but wanted to lay out a path to make this feature complete and work in a generic way.

Also CC @tqchen for comments

Hi @junrushao1994 ,
We have discussed this internally and we find referring to NDArrays in IRModule attributes seems reasonable through tir.allocate_const nodes. I'll do a pass to modify the text in the RFC.
@d-smirnov, any thought from you ? -- I think we will have to store the NDArrays as IRModule attrs and cross refer them in the PRs.
If we all agree, I can go ahead and do the RFC changes while @d-smirnov will do the necessary changes in the PRs.

I read everything and will respond in depth in the morning after I have thought about it for a bit. I see both of the concerns here.

a couple thoughts on @junrushao1994 's comments:

on B: I'm okay with either thing. I think the primary concern here is whether constant data should become a PrimExpr and how much that impacts TIR parsing time?
on C: in #31 (perhaps that or perhaps a derivative of it) we will need to find a TIR expression that can do this. So I think the answer is yes, we just need to deduce exactly how.

@areusch

whether constant data should become a PrimExpr and how much that impacts TIR parsing time?

Because the scope of the RFC is more like generic constant nodes in TIR, I would say the size could be as large as weights in NN, which can be MBs or even more. Parsing these large weights are generally super slow and thus we should support saving them in separate files.

we will need to find a TIR expression that can do this

Yeah I agree, and it can be simpler: as long as it is a packed function in the global registry, we can use tir.call_packed to make cross-device transfer possible.

@areusch Thanks for the discussion! Yep, I agree with you that we need to address these points, and it's certainly doable under the current design. @manupa-arm would you like to respond to Andrew's question? Thanks a lot!

Since we have relay.Constants having the same need to parse in constants, it would be appreciated not to block progress on deciding on the mechanics of parsing in NDArrays in to IRModule.

@manupa-arm i agree we don't need to care so much about how we parse and load .params into IRModule, but what about the question of Add? i think that implies we must traverse the other TIR in Add and copy any referenced NDArray from the other IRModule into this IRModule. is that part of this proposal? this then drags in the naming question.

@areusch @junrushao1994 I have added a section to say how constants are added to the IRModule, now.
Summary :
The storage of constants in the IRModule, will be in "Constants" attribute as Array<NDArray>
Basically, if the tir.allocate_const node is created first, then the PrimFunc and lastly if it gets added to the IRModule, IRModule::Add(...) will need to traverse the stmts and fetch the constants and store the ObjectRefs in the IRModule and cross-update the optional index in the allocate_const node.
On the other hands, if the constants are already present in the IRModule, the tir.allocate_const could be created using the NDArray ObjectRef and the index of NDarray in the IRModule, directly.

@areusch a friendly ping!

@d-smirnov -- I think the design is stable (just waiting on @areusch), shall we look to update the PRs :

https://github.com/apache/tvm/pull/8472
https://github.com/apache/tvm/pull/8509

@manupa-arm can you please create an RFC tracking issue and reference this PR from there?


Update Explorer's information incrementally

A complete rewrite of the cubdash-gen update logic.
It now keeps track of the changes in the upstream datacube, and applies those updates to Explorer's summaries in-place.
It supports adding, updating and archiving datasets. Users that manually delete rows from the database will still need a --force-refresh as we have no efficient way to know that it happened.
cubedash-gen <products>, without other arguments, will now calculate what has changed since the last successful run, and apply those changes. So almost everyone using --force-refresh will no longer need to do it.

[x] Fix new-year roll-over bug.
[x] Expand doc strings with explanations of the complicated parts of logic.
[x] Remove/replace the old recursive update logic
[x] Fix geometry extraction for high_tide_comp_20p
[x] Further testing of failure situations (it should always be hands-off and re-runnable safely without missing/skipping data)
[x] Add a check for ODC's optional dataset.updated column. We use the column to know what datasets have changed.
[x] Retry (manually) the migration from a previous version of Explorer.
[x] Tell users about, ~or deprecate~, the --force option, as most people using it shouldn't be now? Putting in release notes

This includes schema changes (which is why it was hard to break up into smaller PRs).
They are applied using the normal cubedash-gen --init command.

Web instances are compatible with either new/old schema, but cubedash-gen will ask you to update the schema for itself.
The first time someone runs cubedash-gen it will not be incremental. It will regenerate every time period with markers against their latest change date. Future runs will be incremental (... and super fast, in my testing!)

This was a great showcase of our tests. They caught so, so many bugs.

The slight coverage decrease is mainly due to the schema migration code: we're not testing the various schema ODC-incompatibilties and upgrades, though I've run through them manually by doing my own test migrations.

If anyone would like to try a branch based build via docker, it is available here for testing : https://hub.docker.com/r/whatnick/explorer/tags?page=1&ordering=last_updated

Performing a test by running the branch-based docker container against the NCI Database copy in development cluster we have this
2021-02-26 02:57.05 [debug    ] software.version               explorer=2.4.4.dev62+g9709d7d postgis=POSTGIS="2.5.2" [EXTENSION] PGSQL="110" GEOS="3.6.2-CAPI-1.10.2 4d2925d6" PROJ="Rel. 5.2.0, September 15th, 2018" GDAL="GDAL 2.3.1, released 2018/06/22" LIBXML="2.9.3" LIBJSON="0.12.99" LIBPROTOBUF="1.3.0" RASTER
[2021-02-26 02:57:05,990] ERROR in app: Exception on /stac [GET]
Traceback (most recent call last):
  File "/env/lib/python3.6/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1945, in full_dispatch_request
    self.try_trigger_before_first_request_functions()
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1993, in try_trigger_before_first_request_functions
    func()
  File "/env/lib/python3.6/site-packages/cubedash/_model.py", line 268, in check_schema_compatibility
    "Cubedash schema is out of date. "
RuntimeError: Cubedash schema is out of date. Please rerun `cubedash-gen -v --init` to apply updates.
[2021-02-26 02:57:06 +0000] [27] [ERROR] Error handling request /stac
Traceback (most recent call last):
  File "/env/lib/python3.6/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1945, in full_dispatch_request
    self.try_trigger_before_first_request_functions()
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1993, in try_trigger_before_first_request_functions
    func()
  File "/env/lib/python3.6/site-packages/cubedash/_model.py", line 268, in check_schema_compatibility
    "Cubedash schema is out of date. "
RuntimeError: Cubedash schema is out of date. Please rerun `cubedash-gen -v --init` to apply updates.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context
    cursor, statement, parameters, context
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
psycopg2.errors.UndefinedColumn: column product.last_successful_summary does not exist
LINE 1: ...bedash.product.last_refresh AS last_refresh_time, cubedash.p...
                                                             ^

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/env/lib/python3.6/site-packages/gunicorn/workers/gthread.py", line 271, in handle
    keepalive = self.handle_request(req, conn)
  File "/env/lib/python3.6/site-packages/gunicorn/workers/gthread.py", line 320, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/env/lib/python3.6/site-packages/flask/app.py", line 2464, in __call__
    return self.wsgi_app(environ, start_response)
  File "/env/lib/python3.6/site-packages/werkzeug/middleware/proxy_fix.py", line 169, in __call__
    return self.app(environ, start_response)
  File "/env/lib/python3.6/site-packages/flask/app.py", line 2450, in wsgi_app
    response = self.handle_exception(e)
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1879, in handle_exception
    server_error = handler(server_error)
  File "/env/lib/python3.6/site-packages/cubedash/_model.py", line 225, in internal_server_error
    return flask.render_template("500.html", **args)
  File "/env/lib/python3.6/site-packages/flask/templating.py", line 136, in render_template
    ctx.app.update_template_context(context)
  File "/env/lib/python3.6/site-packages/flask/app.py", line 838, in update_template_context
    context.update(func())
  File "/env/lib/python3.6/site-packages/cubedash/_pages.py", line 372, in inject_globals
    grouped_products=_get_grouped_products(),
  File "/env/lib/python3.6/site-packages/cubedash/_pages.py", line 424, in _get_grouped_products
    product_summaries = _model.get_products_with_summaries()
  File "/env/lib/python3.6/site-packages/flask_caching/__init__.py", line 907, in decorated_function
    rv = f(*args, **kwargs)
  File "/env/lib/python3.6/site-packages/cubedash/_model.py", line 88, in get_products_with_summaries
    for product_name in STORE.list_complete_products()
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 1375, in list_complete_products
    for product in all_products
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 1376, in <genexpr>
    if self.has(product.name, None, None, None)
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 940, in has
    return self.get(product_name, year, month, day) is not None
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 712, in get
    product = self.get_product_summary(product_name)
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 842, in get_product_summary
    return self._product(name)
  File "/env/lib/python3.6/site-packages/cachetools/func.py", line 67, in wrapper
    v = func(*args, **kwargs)
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 771, in _product
    ).where(PRODUCT.c.name == name)
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2235, in execute
    return connection.execute(statement, *multiparams, **params)
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1011, in execute
    return meth(self, multiparams, params)
  File "/env/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1130, in _execute_clauseelement
    distilled_params,
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1317, in _execute_context
    e, statement, parameters, cursor, context
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1511, in _handle_dbapi_exception
    sqlalchemy_exception, with_traceback=exc_info[2], from_=e
  File "/env/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context
    cursor, statement, parameters, context
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedColumn) column product.last_successful_summary does not exist
LINE 1: ...bedash.product.last_refresh AS last_refresh_time, cubedash.p...
                                                             ^

[SQL: SELECT cubedash.product.dataset_count, cubedash.product.time_earliest, cubedash.product.time_latest, cubedash.product.last_refresh AS last_refresh_time, cubedash.product.last_successful_summary AS last_successful_summary_time, cubedash.product.id AS id_, cubedash.product.source_product_refs, cubedash.product.derived_product_refs, cubedash.product.fixed_metadata
FROM cubedash.product
WHERE cubedash.product.name = %(name_1)s]
[parameters: {'name_1': 'bom_rainfall_grids'}]
(Background on this error at: http://sqlalche.me/e/13/f405)
2021-02-26 02:57.17 [debug    ] software.version               explorer=2.4.4.dev62+g9709d7d postgis=POSTGIS="2.5.2" [EXTENSION] PGSQL="110" GEOS="3.6.2-CAPI-1.10.2 4d2925d6" PROJ="Rel. 5.2.0, September 15th, 2018" GDAL="GDAL 2.3.1, released 2018/06/22" LIBXML="2.9.3" LIBJSON="0.12.99" LIBPROTOBUF="1.3.0" RASTER
[2021-02-26 02:57:17,063] ERROR in app: Exception on /stac [GET]
Traceback (most recent call last):
  File "/env/lib/python3.6/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1945, in full_dispatch_request
    self.try_trigger_before_first_request_functions()
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1993, in try_trigger_before_first_request_functions
    func()
  File "/env/lib/python3.6/site-packages/cubedash/_model.py", line 268, in check_schema_compatibility
    "Cubedash schema is out of date. "
RuntimeError: Cubedash schema is out of date. Please rerun `cubedash-gen -v --init` to apply updates.
[2021-02-26 02:57:17 +0000] [27] [ERROR] Error handling request /stac
Traceback (most recent call last):
  File "/env/lib/python3.6/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1945, in full_dispatch_request
    self.try_trigger_before_first_request_functions()
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1993, in try_trigger_before_first_request_functions
    func()
  File "/env/lib/python3.6/site-packages/cubedash/_model.py", line 268, in check_schema_compatibility
    "Cubedash schema is out of date. "
RuntimeError: Cubedash schema is out of date. Please rerun `cubedash-gen -v --init` to apply updates.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context
    cursor, statement, parameters, context
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
psycopg2.errors.UndefinedColumn: column product.last_successful_summary does not exist
LINE 1: ...bedash.product.last_refresh AS last_refresh_time, cubedash.p...
                                                             ^

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/env/lib/python3.6/site-packages/gunicorn/workers/gthread.py", line 271, in handle
    keepalive = self.handle_request(req, conn)
  File "/env/lib/python3.6/site-packages/gunicorn/workers/gthread.py", line 320, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/env/lib/python3.6/site-packages/flask/app.py", line 2464, in __call__
    return self.wsgi_app(environ, start_response)
  File "/env/lib/python3.6/site-packages/raven/middleware.py", line 100, in __call__
    iterable = self.application(environ, start_response)
  File "/env/lib/python3.6/site-packages/werkzeug/middleware/proxy_fix.py", line 169, in __call__
    return self.app(environ, start_response)
  File "/env/lib/python3.6/site-packages/flask/app.py", line 2450, in wsgi_app
    response = self.handle_exception(e)
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1879, in handle_exception
    server_error = handler(server_error)
  File "/env/lib/python3.6/site-packages/cubedash/_model.py", line 225, in internal_server_error
    return flask.render_template("500.html", **args)
  File "/env/lib/python3.6/site-packages/flask/templating.py", line 136, in render_template
    ctx.app.update_template_context(context)
  File "/env/lib/python3.6/site-packages/flask/app.py", line 838, in update_template_context
    context.update(func())
  File "/env/lib/python3.6/site-packages/cubedash/_pages.py", line 372, in inject_globals
    grouped_products=_get_grouped_products(),
  File "/env/lib/python3.6/site-packages/cubedash/_pages.py", line 424, in _get_grouped_products
    product_summaries = _model.get_products_with_summaries()
  File "/env/lib/python3.6/site-packages/flask_caching/__init__.py", line 907, in decorated_function
    rv = f(*args, **kwargs)
  File "/env/lib/python3.6/site-packages/cubedash/_model.py", line 88, in get_products_with_summaries
    for product_name in STORE.list_complete_products()
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 1375, in list_complete_products
    for product in all_products
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 1376, in <genexpr>
    if self.has(product.name, None, None, None)
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 940, in has
    return self.get(product_name, year, month, day) is not None
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 712, in get
    product = self.get_product_summary(product_name)
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 842, in get_product_summary
    return self._product(name)
  File "/env/lib/python3.6/site-packages/cachetools/func.py", line 67, in wrapper
    v = func(*args, **kwargs)
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 771, in _product
    ).where(PRODUCT.c.name == name)
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2235, in execute
    return connection.execute(statement, *multiparams, **params)
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1011, in execute
    return meth(self, multiparams, params)
  File "/env/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1130, in _execute_clauseelement
    distilled_params,
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1317, in _execute_context
    e, statement, parameters, cursor, context
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1511, in _handle_dbapi_exception
    sqlalchemy_exception, with_traceback=exc_info[2], from_=e
  File "/env/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context
    cursor, statement, parameters, context
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedColumn) column product.last_successful_summary does not exist
LINE 1: ...bedash.product.last_refresh AS last_refresh_time, cubedash.p...
                                                             ^

[SQL: SELECT cubedash.product.dataset_count, cubedash.product.time_earliest, cubedash.product.time_latest, cubedash.product.last_refresh AS last_refresh_time, cubedash.product.last_successful_summary AS last_successful_summary_time, cubedash.product.id AS id_, cubedash.product.source_product_refs, cubedash.product.derived_product_refs, cubedash.product.fixed_metadata
FROM cubedash.product
WHERE cubedash.product.name = %(name_1)s]
[parameters: {'name_1': 'bom_rainfall_grids'}]
(Background on this error at: http://sqlalche.me/e/13/f405)
2021-02-26 02:58.05 [debug    ] software.version               explorer=2.4.4.dev62+g9709d7d postgis=POSTGIS="2.5.2" [EXTENSION] PGSQL="110" GEOS="3.6.2-CAPI-1.10.2 4d2925d6" PROJ="Rel. 5.2.0, September 15th, 2018" GDAL="GDAL 2.3.1, released 2018/06/22" LIBXML="2.9.3" LIBJSON="0.12.99" LIBPROTOBUF="1.3.0" RASTER
[2021-02-26 02:58:05,986] ERROR in app: Exception on /stac [GET]
Traceback (most recent call last):
  File "/env/lib/python3.6/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1945, in full_dispatch_request
    self.try_trigger_before_first_request_functions()
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1993, in try_trigger_before_first_request_functions
    func()
  File "/env/lib/python3.6/site-packages/cubedash/_model.py", line 268, in check_schema_compatibility
    "Cubedash schema is out of date. "
RuntimeError: Cubedash schema is out of date. Please rerun `cubedash-gen -v --init` to apply updates.
[2021-02-26 02:58:06 +0000] [26] [ERROR] Error handling request /stac
Traceback (most recent call last):
  File "/env/lib/python3.6/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1945, in full_dispatch_request
    self.try_trigger_before_first_request_functions()
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1993, in try_trigger_before_first_request_functions
    func()
  File "/env/lib/python3.6/site-packages/cubedash/_model.py", line 268, in check_schema_compatibility
    "Cubedash schema is out of date. "
RuntimeError: Cubedash schema is out of date. Please rerun `cubedash-gen -v --init` to apply updates.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context
    cursor, statement, parameters, context
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
psycopg2.errors.UndefinedColumn: column product.last_successful_summary does not exist
LINE 1: ...bedash.product.last_refresh AS last_refresh_time, cubedash.p...
                                                             ^

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/env/lib/python3.6/site-packages/gunicorn/workers/gthread.py", line 271, in handle
    keepalive = self.handle_request(req, conn)
  File "/env/lib/python3.6/site-packages/gunicorn/workers/gthread.py", line 320, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/env/lib/python3.6/site-packages/flask/app.py", line 2464, in __call__
    return self.wsgi_app(environ, start_response)
  File "/env/lib/python3.6/site-packages/werkzeug/middleware/proxy_fix.py", line 169, in __call__
    return self.app(environ, start_response)
  File "/env/lib/python3.6/site-packages/flask/app.py", line 2450, in wsgi_app
    response = self.handle_exception(e)
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1879, in handle_exception
    server_error = handler(server_error)
  File "/env/lib/python3.6/site-packages/cubedash/_model.py", line 225, in internal_server_error
    return flask.render_template("500.html", **args)
  File "/env/lib/python3.6/site-packages/flask/templating.py", line 136, in render_template
    ctx.app.update_template_context(context)
  File "/env/lib/python3.6/site-packages/flask/app.py", line 838, in update_template_context
    context.update(func())
  File "/env/lib/python3.6/site-packages/cubedash/_pages.py", line 372, in inject_globals
    grouped_products=_get_grouped_products(),
  File "/env/lib/python3.6/site-packages/cubedash/_pages.py", line 424, in _get_grouped_products
    product_summaries = _model.get_products_with_summaries()
  File "/env/lib/python3.6/site-packages/flask_caching/__init__.py", line 907, in decorated_function
    rv = f(*args, **kwargs)
  File "/env/lib/python3.6/site-packages/cubedash/_model.py", line 88, in get_products_with_summaries
    for product_name in STORE.list_complete_products()
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 1375, in list_complete_products
    for product in all_products
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 1376, in <genexpr>
    if self.has(product.name, None, None, None)
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 940, in has
    return self.get(product_name, year, month, day) is not None
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 712, in get
    product = self.get_product_summary(product_name)
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 842, in get_product_summary
    return self._product(name)
  File "/env/lib/python3.6/site-packages/cachetools/func.py", line 67, in wrapper
    v = func(*args, **kwargs)
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 771, in _product
    ).where(PRODUCT.c.name == name)
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2235, in execute
    return connection.execute(statement, *multiparams, **params)
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1011, in execute
    return meth(self, multiparams, params)
  File "/env/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1130, in _execute_clauseelement
    distilled_params,
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1317, in _execute_context
    e, statement, parameters, cursor, context
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1511, in _handle_dbapi_exception
    sqlalchemy_exception, with_traceback=exc_info[2], from_=e
  File "/env/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context
    cursor, statement, parameters, context
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedColumn) column product.last_successful_summary does not exist
LINE 1: ...bedash.product.last_refresh AS last_refresh_time, cubedash.p...
                                                             ^

[SQL: SELECT cubedash.product.dataset_count, cubedash.product.time_earliest, cubedash.product.time_latest, cubedash.product.last_refresh AS last_refresh_time, cubedash.product.last_successful_summary AS last_successful_summary_time, cubedash.product.id AS id_, cubedash.product.source_product_refs, cubedash.product.derived_product_refs, cubedash.product.fixed_metadata
FROM cubedash.product
WHERE cubedash.product.name = %(name_1)s]
[parameters: {'name_1': 'bom_rainfall_grids'}]
(Background on this error at: http://sqlalche.me/e/13/f405)
2021-02-26 02:58.17 [debug    ] software.version               explorer=2.4.4.dev62+g9709d7d postgis=POSTGIS="2.5.2" [EXTENSION] PGSQL="110" GEOS="3.6.2-CAPI-1.10.2 4d2925d6" PROJ="Rel. 5.2.0, September 15th, 2018" GDAL="GDAL 2.3.1, released 2018/06/22" LIBXML="2.9.3" LIBJSON="0.12.99" LIBPROTOBUF="1.3.0" RASTER
[2021-02-26 02:58:17,148] ERROR in app: Exception on /stac [GET]
Traceback (most recent call last):
  File "/env/lib/python3.6/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1945, in full_dispatch_request
    self.try_trigger_before_first_request_functions()
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1993, in try_trigger_before_first_request_functions
    func()
  File "/env/lib/python3.6/site-packages/cubedash/_model.py", line 268, in check_schema_compatibility
    "Cubedash schema is out of date. "
RuntimeError: Cubedash schema is out of date. Please rerun `cubedash-gen -v --init` to apply updates.
[2021-02-26 02:58:17 +0000] [27] [ERROR] Error handling request /stac
Traceback (most recent call last):
  File "/env/lib/python3.6/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1945, in full_dispatch_request
    self.try_trigger_before_first_request_functions()
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1993, in try_trigger_before_first_request_functions
    func()
  File "/env/lib/python3.6/site-packages/cubedash/_model.py", line 268, in check_schema_compatibility
    "Cubedash schema is out of date. "
RuntimeError: Cubedash schema is out of date. Please rerun `cubedash-gen -v --init` to apply updates.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context
    cursor, statement, parameters, context
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
psycopg2.errors.UndefinedColumn: column product.last_successful_summary does not exist
LINE 1: ...bedash.product.last_refresh AS last_refresh_time, cubedash.p...
                                                             ^

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/env/lib/python3.6/site-packages/gunicorn/workers/gthread.py", line 271, in handle
    keepalive = self.handle_request(req, conn)
  File "/env/lib/python3.6/site-packages/gunicorn/workers/gthread.py", line 320, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/env/lib/python3.6/site-packages/flask/app.py", line 2464, in __call__
    return self.wsgi_app(environ, start_response)
  File "/env/lib/python3.6/site-packages/raven/middleware.py", line 100, in __call__
    iterable = self.application(environ, start_response)
  File "/env/lib/python3.6/site-packages/raven/middleware.py", line 100, in __call__
    iterable = self.application(environ, start_response)
  File "/env/lib/python3.6/site-packages/werkzeug/middleware/proxy_fix.py", line 169, in __call__
    return self.app(environ, start_response)
  File "/env/lib/python3.6/site-packages/flask/app.py", line 2450, in wsgi_app
    response = self.handle_exception(e)
  File "/env/lib/python3.6/site-packages/flask/app.py", line 1879, in handle_exception
    server_error = handler(server_error)
  File "/env/lib/python3.6/site-packages/cubedash/_model.py", line 225, in internal_server_error
    return flask.render_template("500.html", **args)
  File "/env/lib/python3.6/site-packages/flask/templating.py", line 136, in render_template
    ctx.app.update_template_context(context)
  File "/env/lib/python3.6/site-packages/flask/app.py", line 838, in update_template_context
    context.update(func())
  File "/env/lib/python3.6/site-packages/cubedash/_pages.py", line 372, in inject_globals
    grouped_products=_get_grouped_products(),
  File "/env/lib/python3.6/site-packages/cubedash/_pages.py", line 424, in _get_grouped_products
    product_summaries = _model.get_products_with_summaries()
  File "/env/lib/python3.6/site-packages/flask_caching/__init__.py", line 907, in decorated_function
    rv = f(*args, **kwargs)
  File "/env/lib/python3.6/site-packages/cubedash/_model.py", line 88, in get_products_with_summaries
    for product_name in STORE.list_complete_products()
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 1375, in list_complete_products
    for product in all_products
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 1376, in <genexpr>
    if self.has(product.name, None, None, None)
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 940, in has
    return self.get(product_name, year, month, day) is not None
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 712, in get
    product = self.get_product_summary(product_name)
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 842, in get_product_summary
    return self._product(name)
  File "/env/lib/python3.6/site-packages/cachetools/func.py", line 67, in wrapper
    v = func(*args, **kwargs)
  File "/env/lib/python3.6/site-packages/cubedash/summary/_stores.py", line 771, in _product
    ).where(PRODUCT.c.name == name)
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2235, in execute
    return connection.execute(statement, *multiparams, **params)
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1011, in execute
    return meth(self, multiparams, params)
  File "/env/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1130, in _execute_clauseelement
    distilled_params,
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1317, in _execute_context
    e, statement, parameters, cursor, context
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1511, in _handle_dbapi_exception
    sqlalchemy_exception, with_traceback=exc_info[2], from_=e
  File "/env/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    raise exception
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1277, in _execute_context
    cursor, statement, parameters, context
  File "/env/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedColumn) column product.last_successful_summary does not exist
LINE 1: ...bedash.product.last_refresh AS last_refresh_time, cubedash.p...
                                                             ^

[SQL: SELECT cubedash.product.dataset_count, cubedash.product.time_earliest, cubedash.product.time_latest, cubedash.product.last_refresh AS last_refresh_time, cubedash.product.last_successful_summary AS last_successful_summary_time, cubedash.product.id AS id_, cubedash.product.source_product_refs, cubedash.product.derived_product_refs, cubedash.product.fixed_metadata
FROM cubedash.product
WHERE cubedash.product.name = %(name_1)s]
[parameters: {'name_1': 'bom_rainfall_grids'}]
(Background on this error at: http://sqlalche.me/e/13/f405)

The top error is the relevant one, though the latter ones are unfortunate: RuntimeError: Cubedash schema is out of date. Please rerun cubedash-gen -v --init to apply updates.
We want to run the schema update first. The update will not effect existing (previous-version) web processes, though, so they can continue running.

Oh, my original post is badly worded about this. I'll update it.

There is no reason for that docstring commit to have broken the build with a proj error. Something must have changed enviromentally.
 rasterio.errors.CRSError: The EPSG code is unknown. PROJ: proj_create_from_database: /usr/share/proj/proj.db lacks DATABASE.LAYOUT.VERSION.MAJOR / DATABASE.LAYOUT.VERSION.MINOR metadata. It comes from another PROJ installation.).

PR #265 needs to be merged to fix the build.


feat(frappe): added authorizenet payment gateway to frappe integrations

added authorizenet payment gateway to frappe integrations

@MyuddinKhatri should someone be assigned to this for review?

Pull Request Test Coverage Report for Build 946

7 of 105 (6.67%)  changed or added relevant lines in 3 files are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.1%) to 51.764%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

frappe/templates/pages/integrations/authorizenet_checkout.py
3
5
60.0%

frappe/integrations/doctype/authorizenet_settings/authorizenet_settings.py
0
96
0.0%

Files with Coverage Reduction
New Missed Lines
%

frappe/utils/change_log.py
3
21.53%

Totals

Change from base Build 942:
-0.1%

Covered Lines:
21712

Relevant Lines:
41944

💛  - Coveralls

Moved to ERPNext integratons at https://github.com/DigiThinkIT/erpnext/pull/371.


Assume MN payments are valid in case we don't have local info about MN payments

This fixes a bug which slipped in while backporting the refactoring commits from the DIP3 branch. This PR fixes it by reverting to the old behavior, which was to accept any MN payments if no local info about correct payments is available.

Turned out that this still doesn't fully revert to the old behavior. Closing this and opening a new PR that fully reverts the IsTransactionValid method.


Handling datasets across HoloViz

The datasets used across HoloViz come from various places:

some come from Bokeh's sampledata
some are hosted on S3 (not just in one bucket I believe)
some are hosted directly on the repos
some are linked from other sources (e.g. pd.read_csv('https://...'))
some are referenced in Intake catalogs

I suggest we define a list of datasets we want to use and define a way to manage them (where are they hosted? how to get fetch them?).
Having so many sources isn't ideal:

having more consistency on a single website and across websites help users focus on HoloViz features', instead of trying to understand what to the data is about and how it's structured everytime they encounter a new dataset (typical issue with the current hvPlot gallery)
it can make running the examples more difficult than it should be (users struggle running hvPlot examples)
some come bundled with the packages and as such increase their size

This is partially related to how the /examples folder should be handled https://github.com/pyviz-dev/nbsite/issues/243

xref https://github.com/holoviz/holoviz/issues/340

This would definitely be a great benefit to the community.
Here are some related data from our user survey that may inform the course of action. I think it makes sense to balance infrastructure concerns with consideration of the most common (therefore helpful) reported data approaches.

I agree it is a mess but I think all of the approaches you listed have validity. The one approach I like the least is to make intake an extra dependency (unless you know that intake is required for some other reason, I prefer not to have another dependency just to fetch sample data!).
One idea I've just had: mirror bokeh sample data, the samples shipped with the package and everything else into an S3 bucket. Then have a static page served from S3 describing all the datasets with the S3 URL to get to it - then we could point to this one page every time we need sample data. The biggest downside is that this would require an internet connection for all examples...

For the gridded data examples in hvPlot we also pull from xarray sample data, which was an issue last week for a user who had to install various dependent packages before being able to run the examples, so it would be nice to clean this up.  Maybe best would be to have our own S3 bucket to fetch from along with some other fallback for those without live internet access at the time of the examples (some way to pre-fetch the datasets locally such that we find them there before checking  on S3).

superseded by https://github.com/holoviz/holoviz/issues/394


Scene Composer skybox not resetting

When you make a skybox in scenecomposer (right click a node -> add spatial --> skybox) it only works the first time you do it after you opened the sdk. All next attempts to do that will produce the same result as the first one. No matter which scene file you trying to edit.
Workaround is to restart the sdk but it is very annoying.

It happens for me too.

This is still (again?) a problem. I request reopening. If you update one of the textures, delete the old skybox, create a new one, you'd expect it to have an updated version of the texture, right? But that is not the case. Even if you open the file opener, preview also has the old version of the texture.
To me it looks like assetManager.clearCache() would be needed somewhere.

So it could be that even though netbeans is requesting a new file, the asset manager hands out a cached version, yes.
As I was committing the fix, I only checked whether it's possible to select a new texture for the skybox, I guess that is working? And what isn't working is that the same texture isn't reloaded from disk when it has been changed?
This might be relevant to #99 as well, does this workaround apply?

Funny thing is that normally the SDK should explicitly remove all assets that have been loaded alongside a model from the asset cache anyway when its closed.
(i.e. closing the j3o and reopening it?)

I don't think the skybox creator properly uses the loading mechanisms built into the SDK so it would have to clear the assetmanager itself or actually use it :)


per hunt google permissions and drives

I don't know what came over me to think it would be a good idea to do this as apart of #349. It is not. This does not work. Will revisit after this weekend.

#538 does all of this, so closing


Copy/crop function might not work properly

I can select and copy to clipboard, but the selection will not paste when pressing cmd+V, neither in Kleki nor on other platforms.
https://github.com/bitbof/klecks/assets/97041048/c2142f01-76bf-46cb-b74c-7c90856b6308

idk, im 90% sure this used to work at some point...


Use GET for GraphQL

Reason for change

Outlined here: https://github.com/manifoldco/engineering/issues/9392
TL;DR our load balancers & CDN will do better if requests are cacheable via URL.
Most of this PR is actually test changes, because our tests were trying to exactly match URL rather than just the beginning domain. They were updated to match the beginning segment of a URL now for GraphQL.
Testing
⚠This affects all the GraphQL queries so test each component!!!
Checklist

[x] CHANGELOG: The Unreleased section of CHANGELOG was updated
[x] Prop changes: docs were updated
[x] Prop changes: E2E tests were updated, testing from the highest level possible
[x] Platform testing: If this change should be tested against a platform, has it been?

With James’ feedback, moving to wip. Will move the minification logic into @manifoldco/gql-zero and handle more edge cases like comments and “weird“ strings (and of course, use a lightweight library if possible)

Just gonna close this for now. Will take a new utility, and it’ll be easier to redo this branch from scratch.


fix pypi badge

pypi badge is showing as broken image on github in readme; not sure if this is a short-term issue with the badge server or the link syntax has changed?

Looks ok now


Jenkins: Change Kolibri WHL URL to v0.16.0-alpha18

Resolves #156

Currently smoketesting this on my ChromeOS device

Testing the apk generated by Jenkins, I can select a pack to download, but Kolibri then shows the loading screen forever (I’ve waited 30 minutes so far). The animation continues to play, so the app isn’t frozen, but it doesn’t appear to be managing to download things.
The only relevant error message I can see on adb logcat is:
EKWebConsole: Uncaught SyntaxError: Unexpected token ?  Unfortunately it didn’t print a line number.

Yes, that does look like a smoking gun.
I would suggest:

Erase the app data
Launch the app
Before picking a content pack, follow the instructions at https://phabricator.endlessm.com/w/apps/endlesskey/chromebook/#manage-kolibri-content-i to attach the Chrome web inspector (on your laptop) to the app's webviews (there are 2!)
Now go through the onboarding flow until you (hopefully) trigger the SyntaxError and (hopefully) get a better backtrace

After some fiddling about, this is hopefully fixed by #693.

I installed the apk using this guide
As Will suggested, I followed the instructions to get a Chrome web inspector working, using the Chrome on my ChromeOS machine
That pointed to line 2, offset 1591085 of kolibri_explore_plugin.app-6.24.0.js, which is around MediaTypeVerbs[this.kind]??
I used adb forward to forward the Kolibri web port from my ChromeOS machine, and accessed it using Chrome on my main laptop; to my surprise, the content pack download continued and the page worked fine. It did allow me to download and un-minify the JavaScript file, and trace it down to EkPlayButton.vue
adb shell dumpsys package com.google.android.webview | grep versionName gives 68.0.3440.91 on my ChromeOS machine, whereas I’m using Chromium 87.0.4280.66 on my main laptop; this explains the difference in being able to handle the nullish coalescing operator

I ran the Jenkins build for the apk again to get the new kolibri-explore-plugin release, tested it, and now get Uncaught SyntaxError: Unexpected token ..
Unfortunately Chrome DevTools don’t want to un-minify the JS this time, so I can’t pinpoint where the problem is. Accessing Kolibri remotely with my modern Chromium on my main laptop loads the page fine, though, so it’s definitely another instance of the outdated WebView causing problems.
Looks like we need a more systematic fix.
It’s likely that Kolibri 0.16.0-alpha18 works fine, so perhaps it would make sense for someone with a more up-to-date WebView to quickly smoketest it, and then we can unblock and merge this PR, and work on the outdated WebView thing in a separate issue?

That Jenkins job also crashed with java.lang.NullPointerException. Could
you open an issue about that?
On Fri, 7 Jul 2023 at 12:59, Philip Withnall @.***>
wrote:

I ran the Jenkins build for the apk again
https://ci.endlessos.org/job/kolibri-installer-android-pr/474/ to get
the new kolibri-explore-plugin release, tested it, and now get Uncaught
SyntaxError: Unexpected token ..
Unfortunately Chrome DevTools don’t want to un-minify the JS this time, so
I can’t pinpoint where the problem is. Accessing Kolibri remotely with my
modern Chromium on my main laptop loads the page fine, though, so it’s
definitely another instance of the outdated WebView causing problems.
Looks like we need a more systematic fix.
It’s likely that Kolibri 0.16.0-alpha18 works fine, so perhaps it would
make sense for someone with a more up-to-date WebView to quickly smoketest
it, and then we can unblock and merge this PR, and work on the outdated
WebView thing in a separate issue?
—
Reply to this email directly, view it on GitHub
https://github.com/endlessm/kolibri-installer-android/pull/157#issuecomment-1625306295,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAVF2CZBHC5PSIY6O2ZDITXO722BANCNFSM6AAAAAAZ2H5A5U
.
You are receiving this because you commented.Message ID:
@.***>

I am testing the APK from that PR on my Chromebook…

The app crashed during the transition from "choose your starter pack" to downloading the pack, and again while downloading the pack:
07-07 15:16:54.107   365  1038 I ActivityManager: Process com.google.android.webview:sandboxed_process0:org.chromium.content.app.SandboxedProcessService0:0 (pid 4581) has died: fg  BTOP
07-07 15:16:54.109   365   391 W libprocessgroup: Failed to open process cgroup uid 99001 pid 4581: Permission denied
07-07 15:16:54.109   365   391 E libprocessgroup: Error encountered killing process cgroup uid 99001 pid 4581: Permission denied
07-07 15:16:54.110   365  1038 W ActivityManager: Scheduling restart of crashed service org.endlessos.Key/org.chromium.content.app.SandboxedProcessService0:0 in 1000ms for connection
07-07 15:16:54.115   365  1038 D CompatibilityChangeReporter: Compat change id reported: 136274596; UID 10082; state: ENABLED
07-07 15:16:54.120   553   553 I Zygote  : Process 4581 exited due to signal 9 (Killed)
07-07 15:16:54.139  4531  4577 W cr_ChildProcessConn: onServiceDisconnected (crash or killed by oom): pid=4581 bindings:W  S
07-07 15:16:54.157  4531  4531 E chromium: [ERROR:aw_browser_terminator.cc(156)] Renderer process (4581) crash detected (code -1).
07-07 15:16:54.160  4531  4531 E chromium: [ERROR:aw_browser_terminator.cc(112)] Render process (4581) kill (OOM or update) wasn't handed by all associated webviews, killing application.
07-07 15:16:54.930   365   429 W InputDispatcher: channel '1ab64c1 org.endlessos.Key/org.kivy.android.PythonActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x9
07-07 15:16:54.931   365   429 E InputDispatcher: channel '1ab64c1 org.endlessos.Key/org.kivy.android.PythonActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
07-07 15:16:54.932   194   194 I Zygote  : Process 4531 exited due to signal 9 (Killed)
07-07 15:16:54.935   365  1038 D ConnectivityService: ConnectivityService NetworkRequestInfo binderDied(NetworkRequest [ TRACK_DEFAULT id=51, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED Uid: 10082 AdministratorUids: [] RequestorUid: 10082 RequestorPackageName: org.endlessos.Key] ], android.os.BinderProxy@6dcb907)
07-07 15:16:54.940   365  3102 D ConnectivityService: ConnectivityService NetworkRequestInfo binderDied(NetworkRequest [ LISTEN id=52, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&FOREGROUND Uid: 10082 AdministratorUids: [] RequestorUid: 10082 RequestorPackageName: org.endlessos.Key] ], android.os.BinderProxy@ec51a34)
07-07 15:16:54.940   365   445 D ConnectivityService: releasing NetworkRequest [ TRACK_DEFAULT id=51, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED Uid: 10082 AdministratorUids: [] RequestorUid: 10082 RequestorPackageName: org.endlessos.Key] ] (release request)

seems to be the offending section. I'll check if it also happens with the released version…

That Jenkins job also crashed with java.lang.NullPointerException. Could you open an issue about that?

I was assuming that was because I went a non-standard way and started it via ‘Replay’, and that it wasn’t worth reporting unless it’s reproducible via the normal route of triggering it from GitHub via a PR. The dereference appears to be in the post steps, possibly buildDescription("UPLOAD=${params.UPLOAD}"), so it’s harmless in terms of generating the apk successfully.

Is this OK to be merged? I feel like the issues hit here are independent of kolibri and the android installer is no longer buildable since the kolibri 0.16.0a15 wheel no longer exists on github.