TP-742: Basic error handling

This PR addresses both TP-705 and TP-742
Edit forms currently only provide simple field validation (eg, SID matches a regular expression).
We need to prevent users accidentally adding invalid data to the database which would violate the business rules. To prevent this at the earliest opportunity, this commit adds checks for the following:

When start date is after end date on models which have a validity period
Selected business rules - some business rules can only be checked across all models in a transaction, some do not make sense in a create/edit form (eg PreventDeleteIfInUse rules)

If these checks fail, the form is redisplayed with error messages, allowing the user to correct the mistakes:

The problem with running some of the cross-relationship business rules and indirect business rules in form validation is that whichever object you edit first, you will get a violation and the form submit will be prevented. For example, if you want to change the Certificate validity start date, when you will get an error because the first description must have a matching start date. But if you edit the first description, you get an error for the same reason. If you create a new first description, it may fail because the validity period is not contained by the Certificate.
Perhaps this is a contrived example and we should not allow changing the Certificate start date? But then the only thing you can edit on the form is the end date.
When creating a Certificate, you will never be able to submit the form successfully, because there will be no description. But you can't create a description if there is no Certificate.
These business rules can only be checked once all the related objects are in the workbasket, after form submission.

I'm not sure I see the need for storing the form data in the session - isn't that what the workbasket is for? Until a workbasket is approved, the models inside it can violate all the business rules they like, no?


PeeringCandidates list cleanup logic is missing

Hello everyone.
This issue is to ask a question about some logic within the FLUIDOS Node.
More specifically, PeeringCandidates are created upon Solver CRs creation; PeeringCandidate resources are indeed an association between a SolverID and a Flavour.
However, the current logic does not clean up the peering candidate table after a solver has been solved.
My question is: is this a missing logic or is it a desired behaviour?
Thanks.
Francesco

Hi @fracappa,
A Peering Candidate is not "an association between a SolverID and a Flavour." It simply serves as a wrapper for a Flavour received from an external fluidos node after a specific discovery triggered by a Solver. These Peering Candidates represent available Flavours and indicate where resources can be allocated from.
The rationale for retaining them, rather than deleting them, is based on the anticipation of finding a matching candidate during the next discovery process. If a Peering Candidate is utilized, it will be reserved and associated with a SolverID. This information is crucial for correctly solving, reserving, and provisioning the necessary resources.
Thanks.
Alessandro

Hi @cannarelladev .
Thanks for replying to this issue.
I thought about the reason behind this implementation choice and I have come to the same conclusions as you.
However, if the PeeringCandidate resource is "only" a wrapper to a Flavour, it should not be having any relationships with other resource, should it?
But, sooner or later, it's going to be linked to a Solver (through SolverID field) and as such it's not just a Flavour wrapper anymore.
I agree with you that it is reasonable to keep PeeringCandidate available for next discoveries but what if those discoveries are never triggered? Has been taken into account the possibility of handling different types of Flavours (VMs, K8s, Services, etc) with a possible explosion of PeeringCandidate CRs?
Moeover, I believe that many intermediate resources (like PeeringCandidate "consumed "by solvers and Reservations) should be cleaned once we got the Contract, possibly after a while, as those are temporary resources.
I'm questioning if it's reasonable to just  cache HTTP(s) responses from providers and then creating PC (if cache is still valid) upon possible next discoveries, rather than keeping CRs forever.
Thanks for any feedback.
Francesco


Refactor dyn Node to enum

See #244

Codecov Report
Patch coverage: 98.77% and project coverage change: -0.27 :warning:

Comparison is base (ceb6be8) 96.66% compared to head (e08f36f) 96.40%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #247      +/-   ##
==========================================
- Coverage   96.66%   96.40%   -0.27%
==========================================
  Files          19       18       -1
  Lines        4619     4309     -310
==========================================
- Hits         4465     4154     -311
- Misses        154      155       +1

Impacted Files
Coverage Δ

src/dirgraphsvg/util/mod.rs
100.00% <ø> (ø)

src/dirgraphsvg/graph.rs
88.16% <73.33%> (ø)

src/dirgraphsvg/mod.rs
90.50% <88.00%> (-0.56%)
:arrow_down:

src/dirgraphsvg/nodes/mod.rs
99.70% <99.69%> (-0.30%)
:arrow_down:

src/dirgraphsvg/nodes/away_node.rs
100.00% <100.00%> (ø)

src/dirgraphsvg/nodes/box_node.rs
100.00% <100.00%> (ø)

src/dirgraphsvg/nodes/elliptical_node.rs
100.00% <100.00%> (ø)

src/dirgraphsvg/util/wrap_words.rs
100.00% <100.00%> (ø)

src/render.rs
93.46% <100.00%> (-0.05%)
:arrow_down:

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Check if 10 for smallest wrap is good.
Remove undeveloped Strategy again.


Simple command that works on wasmer cli doesn't work on wasmer-js

This simple app just asks for input text then does nothing.
https://webassembly.sh/?run-command=wapm install<EMAIL_ADDRESS>https://registry-cdn.wapm.io/contents/richard/dice/0.0.1/dice.wasm
tested on wasmer 0.15.0

I just took a look. Wasmer-js doesn't support yet multiple versions of WASI.
However the fix is trivial, so I'll make a quick release :)

Thank you!

I just republished WebAssembly.sh with the latest Wasmer-JS (0.10.0) with the fix.
Dice should now be working properly! Thanks for opening the issue @richardanaya 🙂


modify time is wrong

I just read a note, did not modify anything, but the modify time of the note has been updated. I even set default view for new tabs is reading view.

Try it in a Sandbox vault. You probably have another plugin modifying the file, like Linter.

Try it in a Sandbox vault. You probably have another plugin modifying the file, like Linter.
If you want to avoid updates when external processes modify your notes, turn on the setting to "Use typing events instead of Obsidian events".


Why skip unrecognized options?

As described in the documentation RFC7252:

The IANA policy for future additions to this sub-registry is split
into three tiers as follows.  The range of 0..255 is reserved for
options defined by the IETF (IETF Review or IESG Approval).  The
range of 256..2047 is reserved for commonly used options with public
specifications (Specification Required).  The range of 2048..64999 is
for all other options including private or vendor-specific ones,
which undergo a Designated Expert review to help ensure that the
option semantics are defined correctly.  The option numbers between
65000 and 65535 inclusive are reserved for experiments.  They are not
meant for vendor-specific use of any kind and MUST NOT be used in
operational deployments.

We can define options in range of 2048..64999 for private use. So is there any way we can edit optionDefs for private options?

Could it be possible that func parseOptionValue return valueBuf rather than nil for those unrecognized options?

Yes. I think, it will be works. Could you pls provides PR with tests?

I'd like to have a try.

Thx for contrinting!


Update picker if the model value is changed for a single calendar

For single date picker, the calendar won't show the updated date as selected, if the model value is changed from the controller. The value in the input box will be updated, but the calendar selection will be updated only on init and the selection won't change when the model value is changed. So the value of model need to be watched and update calendar accordingly.

@nsjithin Thanks a lot!


Add nullable attributes, TimeSpan and overloads to Skottie

Description of Change
This PR just adds some overloads and nullable annotations to the Skottie Animation type.
While working with the new type, I was unsure what the t in all the seek methods were, so I renamed the parameters to be more explicit: percent, frame, seconds. I also added an overload for SeekFrameTime to take a TimeSpan because that was useful.
I also made a change to make Duration a TimeSpan. This was again to reduce confusion about the actual unit, but also keeps all the time concepts as TimeSpan because it feels more accurate?
I added some "overloads" for the TryCreate and TryParse to just return null instead (Create and Parse). The reason for null and not an exception is that for some reason, null was used to when there was an error reading things. It should have been an exception, but here we are. Skia does not really have "errors" but more it tries and then says nah, here is a big fat null for you. At least it is mostly consistent.
Is the SkiaSharp API perfect? Yes. There have been no regrets in the design and naming of this perfect library. *looks for tissue to dry eyes*

/azp run SkiaSharp

/azp run SkiaSharp


Recognize RTEXT in addition to LTEXT and CTEXT in .rc syntax.

For some reason only LTEXT and CTEXT were recognized as controls, but RTEXT was not.
Add it too for consistency.

Thanks for the patch. Please note, that this is currently an experimental repository. You should however first try to contact the maintainer of the syntax file. He will then send an updated syntax file to Bram for inclusion with Vim.

Someone wrote:

For some reason only LTEXT and CTEXT were recognized as controls, but RTEXT was not.
Add it too for consistency.
You can view, comment on, or merge this pull request online at:
https://github.com/vim/vim/pull/360
-- Commit Summary --

Recognize RTEXT in addition to LTEXT and CTEXT in .rc syntax.

Please send this to the maintainer of the file, Heiko Erhardt.
--
hundred-and-one symptoms of being an internet addict:
47. You are so familiar with the WWW that you find the search engines useless.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Unfortunately Heiko's email address in the file header doesn't seem to work any longer, so I don't know where to send this to... Considering how utterly trivial this change is perhaps it could be merged in by someone else?

Hi Bram!
On So, 24 Mai 2015, Bram Moolenaar wrote:

For some reason only LTEXT and CTEXT were recognized as controls, but RTEXT was not.
Add it too for consistency.
You can view, comment on, or merge this pull request online at:
https://github.com/vim/vim/pull/360
-- Commit Summary --

Recognize RTEXT in addition to LTEXT and CTEXT in .rc syntax.

Please send this to the maintainer of the file, Heiko Erhardt.

If no one volunteers, I can take over.

Das ist wahrscheinlich der Grund, warum sich so wenige damit
beschäftigen.
-- Henry Ford

Please provide patches against my new repository


Backport: Add InterceptorHolder instead of InterceptorRegistry

Backport: Add InterceptorHolder instead of InterceptorRegistry
#10858
Backport to 2.5.4-SNAPSHOT

Cancel

Not applicable to 2.5.4 versions.


xcodebuild: Command failed with exit code 65

Bug report
Current behavior:
Building the test repo or my project results in error xcodebuild: Command failed with exit code 65
Error building cordova-plugin-firebasex-test (commit da195ce3639ab1b54ef1937cfb9464499546f02a)
The following build commands failed:
	CompileC /Users/xxx/Library/Developer/Xcode/DerivedData/FirebaseTest-dlrluwgizrqcdxctqasjwtfzumhl/Build/Intermediates.noindex/FirebaseTest.build/Debug-iphonesimulator/FirebaseTest.build/Objects-normal/x86_64/CustomFCMReceiverPlugin.o /Users/xxx/dev/cordova-plugin-firebasex-test/platforms/ios/FirebaseTest/Plugins/cordova-plugin-customfcmreceiver/CustomFCMReceiverPlugin.m normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
xcodebuild: Command failed with exit code 65

Error building my project
** BUILD FAILED **

The following build commands failed:
	PhaseScriptExecution [CP]\ Copy\ Pods\ Resources /Users/xxx/Library/Developer/Xcode/DerivedData/Crewmojo-axcclukmppzuamdsybrlucydvkpv/Build/Intermediates.noindex/Crewmojo.build/Debug-iphonesimulator/Crewmojo.build/Script-C83E948905523E6F7C12544B.sh
(1 failure)
xcodebuild: Command failed with exit code 65

I have tried to many pod related reinstallation steps e.g. reinstalled ruby / cocoapods / pod repo / pod install etc.
Expected behavior:
The test project should compile
Steps to reproduce:
Checked out latest test project
npm install
cordova platform add ios
cordova build ios
Environment information

Cordova CLI version

9.0.0<EMAIL_ADDRESS>

Cordova platform version

Installed platforms: android 8.1.0 ios 5.1.1

Plugins & versions installed in project (including this plugin)

cordova-plugin-androidx 1.0.2 "cordova-plugin-androidx" cordova-plugin-androidx-adapter 1.1.0 "cordova-plugin-androidx-adapter" cordova-plugin-device 2.0.3 "Device" cordova-plugin-firebasex 8.1.0 "Google Firebase Plugin" cordova-plugin-googleplus 8.4.0 "Google SignIn" cordova-plugin-inappbrowser 3.2.0 "InAppBrowser" cordova-plugin-nativestorage 2.3.2 "NativeStorage" cordova-plugin-splashscreen 5.0.3 "Splashscreen" cordova-plugin-statusbar 2.4.3 "StatusBar" cordova-plugin-whitelist 1.3.4 "Whitelist" cordova-plugin-wkwebview-engine 1.2.1 "Cordova WKWebView Engine" cordova-plugin-wkwebview-file-xhr 2.1.4 "Cordova WKWebView File XHR Plugin" cordova-universal-links-plugin 1.2.1 "Universal Links Plugin"

Dev machine OS and version, e.g.

OSX

ProductName:	Mac OS X ProductVersion:	10.15.3 BuildVersion:	19D76

iOS build issue:

Node JS version

v12.3.1

XCode version

Version 11.3.1 (11C504)

Sorry, this was my fault.
I updated the test project to use the new iOS custom receiver mechanism but that functionality was still on the master branch of this plugin and hadn't been published yet, so when you built the test project it pulled in v8.1.0 of this plugin from npm which doesn't contain the  iOS custom receiver code.
I've just published v8.1.1 to npm which contains the custom receiver code, so that resolves the build issue with the test project.

Hi @dpa99c , i've the same problem with latest version 8.1.1

@stegithub this specific issue was caused by the example project containing code referencing a plugin class not present in v8.1.0 but this class is present in v8.1.1.
In which case you would see an error something like this:
In file included from /Users/dave/Documents/projects/@scratch/cordova-plugin-firebasex-test/platforms/ios/FirebaseTest/Plugins/cordova-plugin-customfcmreceiver/CustomFCMReceiverPlugin.m:2:
/Users/dave/Documents/projects/@scratch/cordova-plugin-firebasex-test/platforms/ios/FirebaseTest/Plugins/cordova-plugin-customfcmreceiver/CustomFCMReceiver.h:1:9: fatal error: 'FirebasePluginMessageReceiver.h' file not found
#import "FirebasePluginMessageReceiver.h"
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The following build commands failed:
CompileC /Users/dave/Library/Developer/Xcode/DerivedData/FirebaseTest-clkbkirulkdcdkhhnvihqrtnnweg/Build/Intermediates.noindex/FirebaseTest.build/Debug-iphonesimulator/FirebaseTest.build/Objects-normal/x86_64/CustomFCMReceiver.o<EMAIL_ADDRESS>normal x86_64 objective-c com.apple.compilers.llvm.clang.1_0.compiler

If not, please check your build is not actually failing due to #326.


Theme docs

Please, write a theme documentations with list of props and Redux State.
Thanks.

https://github.com/cezerin/cezerin/wiki/theme-state-schema
is this enough?


Add a new example sum to join examples

@feliciahalim Thank you! Let's merge this for now, but like the count example, we are likely still need to change it later.


[Enhancement] Drag and drop mappack ZIPs or folders to load them into the game

As Maurice has suggested for Mari0 2.

I've always wanted that and it's relatively easy to do, great suggestion!


LND seed and compatibility other wallets

Background
I have my LND seed but my node isn't online anymore. Can I restore the (off-chain) funds by means of another compatible wallet?

Currently only lnd uses the aezeed seed format. But you can use the chantools showrootkey command to extract the xprv of the seed that is supported by some of the more advanced wallets out there. The on-chain funds are all on either a m/49'/0'/0'/0/x or m/84'/0'/0'/0/x derivation path.
The off-chain funds are a completely different matter. If you don't have a channel.backup file from when your node was last online, the default answer would be: No, off-chain funds cannot be restored without the backup.
If you are able and willing to dive into some quite technical and involved manual work, you can try reconstructing the channel backup from public information. But that has a set of conditions to even work (mainly the peer is still around).
If you do have a channel.backup file, you can just follow the official recovery guide to recover the off-chain funds (will close all channels).
I'm closing this issue because the main question is answered. You can still ask more questions here if things are still unclear.


Can’t Link FreeCodeCamp to Github

Challenge Name

Issue Description
The forum side of my FreeCodeCamp account is linked to Github, but I absolutely cannot linked my main FreeCodeCamp account that shows the progress I’ve made to Github. Since I wasn’t very far along, I even completely deleted my Github account and recreated it.  *Now I’ve even deleted and re-created my FreeCodeCamp account (I guess I could use review), and this issue is still happening.
Every time I click on it and enter my password and username for Github, I get a message which says “The code passed is incorrect or expired.”  I will attach screenshots of where I am starting and the message I am getting.
I emailed FreeCodeCamp a month or two ago about this but didn’t get a response. I really enjoy FreeCodeCamp, and I would like to be able to have a public profile to which I can link.
Browser Information
I have tried Internet Explorer, Firefox, and Chrome.

Browser Name, Version:
Operating System:
Mobile, Desktop, or Tablet:

Your Code

Screenshot

@BerkeleyTrue Looks like their deletion of GitHub account could have orphaned the UserIdentity object. Maybe this needs to be fixed in backend directly?

@BerkeleyTrue any ideas?

No I don't have any. The error does not indicate an orphaned identity but points to the code returned by Github isn't validating

Hello.  Thanks for looking into it.  This was happening before I deleted and re-created the accounts.  I did the deletions/re-creations in an attempt to fix the problem.

@DaveOrDave could you send me an email with your email address and I can look into fixing this for your specific account? Then if anyone else reports this, we can re-open this issue.

Sure.  I'll do it in just a moment.  I really appreciate you looking into this.  I'm really enjoying FreeCodeCamp, and I want to be able to share what I'm doing at FreeCodeCamp on GitHub.  Thanks!


I want export include environment

This plugin is great, but I need export Environment too

Solved this in pull request #14 .


.env uses incorrect key (current: MicrosoftAppId but it should be MicrosoftAppID)

In the /samples/javascript_nodejs/07.using-adaptive-cards project, the .env file contains the key MicrosoftAppId. However, index.js looks for process.env.MicrosoftAppID. This can result in the following error when trying to run the bot: BotFrameworkAdapter.processActivity(): 401 ERROR Error: Unauthorized. Invalid AppId passed on token [TOKEN]
https://github.com/microsoft/BotBuilder-Samples/blob/d360da100671aca9653c9ceb6b9b5000aaa0a7fd/samples/javascript_nodejs/07.using-adaptive-cards/.env#L1

Thank you for the report, @lucaswillering
You've identified a discrepancy between an identifier in two files, and you concluded that .env is the file that needs to be corrected when in fact the problem was in index.js. MicrosoftAppId is the correct convention used in the Bot Framework, and you can verify this by looking at other samples. I've submitted a pull request to fix the problem.


THRIFT-5282: Add IPv6 client support to Lua library

Client: lua
The Lua library only supports TCP connections over IPv4 sockets. Add IPv6 support to the Thrift client in l_socket_create_and_connect() only, which is the usual code flow.

[x] Did you create an Apache Jira ticket?  (not required for trivial changes)
[x] If a ticket exists: Does your pull request title follow the pattern "THRIFT-NNNN: describe my issue"?
[x] Did you squash your changes to a single commit?  (not required, but preferred)
[x] Did you do your best to avoid breaking changes?  If one was needed, did you label the Jira ticket with "Breaking-Change"?
[x] If your change does not involve any code, include [skip ci] anywhere in the commit message to free up build resources.

👋


try steps should require a specific exception type to be provided

Right now, try steps will catch any kind of exception and fail the operation gracefully. This was easy to do using Deterministic's try! operation, but it isn't ideal, since it'll also catch things like ArgumentError, which would point to a problem with the code and should bubble up.
The more realistic scenario would be that the user knows what kind of exceptions the step operation might raise, and can provide them explicitly. This would mean that unexpected exceptions still interrupt the operation as you'd expect as a developer.
It'd look something like this:
my_transaction = CallSheet(container: container) do
  try :charge_credit_card, catch: MyApp::ChargeFailure
end

I think it'd make sense to also support passing an array of exception classes. The catch: option would be required.

Resolved in 9c8f6d04b6151eb565323ffd5dec7b2c44ec4c6b.


Add validation for max length of cluster network name

Problem:
when creating a cluster network using GUI, user specifies a name for cluster network and it is validated for maximum length of 12 at the UI code,but when cluster network with name > 12 chars is created using API, the cluster network is created successfully.
cluster network webhook validator is missing the max length check for cluster network name.
Later it is validated when vlan config is applied on the same cluster network.
But the creation of cluster network should validate it.
Solution:
Added create function in cluster network validator to validate for maximum length of cluster network name.
Related Issue:
harvester/harvester#3826
Test plan:
Manually tested on a harvester node with the changes.

@bk201 does this need backport to old versions?

yes, we need a backport. I updated some comments about the workflow and I moved the issue back to review first because the change didn't land in v1.4-head either.


Validate JSON body before unmarshalling into input type

Fix for #202
Instead of first reading the JSON into the input object, perform validation to return appropriate error messages in case
of trying to parse an invalid type mapping, e.g. int to string.
Originally you would get failed to decode json: json: cannot unmarshall... error and now it returns more context instead, for example:
{
  "status": "INVALID_ARGUMENT",
  "error": "invalid argument: validation failed",
  "context": {
    "body": [
      "#/name: expected string, but got number"
    ]
  }
}

Ugh, of course it does not perform body validation in ValidateJSONBody(jsonBody []byte) error if the schema is not found in rest.ParamInBody or the schema is nil:
func (v *Validator) ValidateJSONBody(jsonBody []byte) error {
  name := "body"

  schema, found := v.inNamedSchemas[rest.ParamInBody][name]
  if !found || schema == nil {
    return nil
  }
  // ...
}

It only seems to have this value if a constraint has been given to a type. In my situation it was using uint for a field that automatically set a >=0 constraint and therefore a schema was found. Changing that to int and just using a JSON tag does not make this implementation possible.
For example:
// No validation will happen.
type ExampleIn struct {
  Value int `json:"value"`
  Name string `json:"unit"`
}

// This does get validated
type ExampleIn struct {
  Value int `json:"value" minimum:"1"`
  Name string `json:"unit"`
}


Robust update based on slug

Pull request type

Please check the type of change your PR introduces:

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Changes to the url of an issue trigger an update of the RSS feed
Issue Number: #18
What is the new behavior?

a slug is generated based on the journal abbreviation and the title
the slug is checked for changes rather than the url

Does this introduce a breaking change?

[ ] Yes
[x] No

Other information

This move from url to slug assumes that changes to the title (in a robust, slugified form) are more likely to be an actually new call for papers than changes to the url.

Closes #18


[WIP] pythonPackages: fix some broken builds

Motivation for this change
ZHF #45960. Fix various broken python packages.
Things done

[x] Built in sandbox on NixOS x86_64-linux

@GrahamcOfBorg build python36Packages.daphne python36Packages.channels

Success on x86_64-linux (full log)
Attempted: python36Packages.daphne, python36Packages.channels
Partial log (click to expand)
Successfully installed channels-2.1.3
/build/channels-2.1.3
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/glbhvpkbgpnb8cdi0rv9140g0vmkyc68-python3.6-channels-2.1.3
strip is /nix/store/h0lbngpv6ln56hjj59i6l77vxq25flbz-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/glbhvpkbgpnb8cdi0rv9140g0vmkyc68-python3.6-channels-2.1.3/lib
patching script interpreter paths in /nix/store/glbhvpkbgpnb8cdi0rv9140g0vmkyc68-python3.6-channels-2.1.3
checking for references to /build in /nix/store/glbhvpkbgpnb8cdi0rv9140g0vmkyc68-python3.6-channels-2.1.3...
/nix/store/dfkz790ci59y942a7s5377bx8a9kn127-python3.6-daphne-2.2.2
/nix/store/glbhvpkbgpnb8cdi0rv9140g0vmkyc68-python3.6-channels-2.1.3

Success on aarch64-linux (full log)
Attempted: python36Packages.daphne, python36Packages.channels
Partial log (click to expand)
Successfully installed channels-2.1.3
/build/channels-2.1.3
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/wv6z181m124n1hh69yf8p28azpmkra0s-python3.6-channels-2.1.3
strip is /nix/store/y4ymnvgxygpq05h03kyzbj572zmh6zla-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/wv6z181m124n1hh69yf8p28azpmkra0s-python3.6-channels-2.1.3/lib
patching script interpreter paths in /nix/store/wv6z181m124n1hh69yf8p28azpmkra0s-python3.6-channels-2.1.3
checking for references to /build in /nix/store/wv6z181m124n1hh69yf8p28azpmkra0s-python3.6-channels-2.1.3...
/nix/store/v214m4igqww33hvyj8nfhw7z8zzidh8r-python3.6-daphne-2.2.2
/nix/store/wv6z181m124n1hh69yf8p28azpmkra0s-python3.6-channels-2.1.3

Failure on x86_64-darwin (full log)
Attempted: python36Packages.daphne, python36Packages.channels
Partial log (click to expand)

tests/test_websocket.py::TestWebsocket::test_http_bits
  /nix/store/3hzkfm9cmyp1g7j82vghl8gyfs7qhyg8-python3.6-hypothesis-3.66.2/lib/python3.6/site-packages/hypothesis/strategies.py:588: HypothesisDeprecationWarning: You should remove the average_size argument, because it is deprecated and no longer has any effect.  Please open an issue if the default distribution of examples does not work for you.
    check_valid_sizes(min_size, average_size, max_size)

-- Docs: https://docs.pytest.org/en/latest/warnings.html
============== 27 failed, 21 passed, 9 warnings in 149.82 seconds ==============
builder for '/nix/store/k5934q5ck2q9iqhlf1z2rsq6rnc52pp7-python3.6-daphne-2.2.2.drv' failed with exit code 1
cannot build derivation '/nix/store/f7z19gxchfqfk0jp73dgy2yqqynq6xqb-python3.6-channels-2.1.3.drv': 1 dependencies couldn't be built
error: build of '/nix/store/f7z19gxchfqfk0jp73dgy2yqqynq6xqb-python3.6-channels-2.1.3.drv', '/nix/store/k5934q5ck2q9iqhlf1z2rsq6rnc52pp7-python3.6-daphne-2.2.2.drv' failed

@GrahamcOfBorg build python36Packages.daphne python36Packages.channels

Success on aarch64-linux (full log)
Attempted: python36Packages.daphne, python36Packages.channels
Partial log (click to expand)
/nix/store/v214m4igqww33hvyj8nfhw7z8zzidh8r-python3.6-daphne-2.2.2
/nix/store/wv6z181m124n1hh69yf8p28azpmkra0s-python3.6-channels-2.1.3

Success on x86_64-darwin (full log)
Attempted: python36Packages.daphne, python36Packages.channels
Partial log (click to expand)
Requirement already satisfied: idna>=2.5 in /nix/store/6d5iv9w1k93gcnd2aw3dl7z9gkkga9c4-python3.6-idna-2.7/lib/python3.6/site-packages (from hyperlink>=17.1.1->twisted>=18.7->daphne~=2.2->channels==2.1.3) (2.7)
Installing collected packages: channels
Successfully installed channels-2.1.3
/private/tmp/nix-build-python3.6-channels-2.1.3.drv-0/channels-2.1.3
post-installation fixup
strip is /nix/store/df6k4mgdjxciy0f637lryp7c9ln7n1m3-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/6zw02k6hd3nmrn5r1p7by9ifdzxd65fv-python3.6-channels-2.1.3/lib
patching script interpreter paths in /nix/store/6zw02k6hd3nmrn5r1p7by9ifdzxd65fv-python3.6-channels-2.1.3
/nix/store/ng0qx7gg2sj6iq11mlv8rnl877fdcl62-python3.6-daphne-2.2.2
/nix/store/6zw02k6hd3nmrn5r1p7by9ifdzxd65fv-python3.6-channels-2.1.3

Success on x86_64-linux (full log)
Attempted: python36Packages.daphne, python36Packages.channels
Partial log (click to expand)
Successfully installed channels-2.1.3
/build/channels-2.1.3
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/glbhvpkbgpnb8cdi0rv9140g0vmkyc68-python3.6-channels-2.1.3
strip is /nix/store/h0lbngpv6ln56hjj59i6l77vxq25flbz-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/glbhvpkbgpnb8cdi0rv9140g0vmkyc68-python3.6-channels-2.1.3/lib
patching script interpreter paths in /nix/store/glbhvpkbgpnb8cdi0rv9140g0vmkyc68-python3.6-channels-2.1.3
checking for references to /build in /nix/store/glbhvpkbgpnb8cdi0rv9140g0vmkyc68-python3.6-channels-2.1.3...
/nix/store/dfkz790ci59y942a7s5377bx8a9kn127-python3.6-daphne-2.2.2
/nix/store/glbhvpkbgpnb8cdi0rv9140g0vmkyc68-python3.6-channels-2.1.3

@GrahamcOfBorg build python27Packages.eve python36Packages.eve

Success on x86_64-linux (full log)
Attempted: python27Packages.eve, python36Packages.eve
Partial log (click to expand)
Successfully installed Eve-0.8
/build/Eve-0.8
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/5gxdjr4gwpz6ll3ycs5600b5ym9z6gbr-python3.6-Eve-0.8
strip is /nix/store/h0lbngpv6ln56hjj59i6l77vxq25flbz-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/5gxdjr4gwpz6ll3ycs5600b5ym9z6gbr-python3.6-Eve-0.8/lib
patching script interpreter paths in /nix/store/5gxdjr4gwpz6ll3ycs5600b5ym9z6gbr-python3.6-Eve-0.8
checking for references to /build in /nix/store/5gxdjr4gwpz6ll3ycs5600b5ym9z6gbr-python3.6-Eve-0.8...
/nix/store/j3jhzr2fc7f12lq1akxb5cammz5652qj-python2.7-Eve-0.8
/nix/store/5gxdjr4gwpz6ll3ycs5600b5ym9z6gbr-python3.6-Eve-0.8

Success on x86_64-darwin (full log)
Attempted: python27Packages.eve, python36Packages.eve
Partial log (click to expand)
Requirement already satisfied: MarkupSafe>=0.23 in /nix/store/5f53wy70y3ifxymjhpf6r9891qksijhp-python3.6-markupsafe-1.0/lib/python3.6/site-packages (from Jinja2>=2.10->flask>=1.0->Eve==0.8) (1.0)
Installing collected packages: Eve
Successfully installed Eve-0.8
/private/tmp/nix-build-python3.6-Eve-0.8.drv-0/Eve-0.8
post-installation fixup
strip is /nix/store/df6k4mgdjxciy0f637lryp7c9ln7n1m3-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/4qrdvangn8sl6pj50y9iijglb0d8nq3m-python3.6-Eve-0.8/lib
patching script interpreter paths in /nix/store/4qrdvangn8sl6pj50y9iijglb0d8nq3m-python3.6-Eve-0.8
/nix/store/3fhsz6njf1hpx9h17lh9x4m4yzlyxm14-python2.7-Eve-0.8
/nix/store/4qrdvangn8sl6pj50y9iijglb0d8nq3m-python3.6-Eve-0.8

Success on aarch64-linux (full log)
Attempted: python27Packages.eve, python36Packages.eve
Partial log (click to expand)
Successfully installed Eve-0.8
/build/Eve-0.8
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/kcgvyjxk848fni8x7q85g8r6ag76v64v-python3.6-Eve-0.8
strip is /nix/store/y4ymnvgxygpq05h03kyzbj572zmh6zla-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/kcgvyjxk848fni8x7q85g8r6ag76v64v-python3.6-Eve-0.8/lib
patching script interpreter paths in /nix/store/kcgvyjxk848fni8x7q85g8r6ag76v64v-python3.6-Eve-0.8
checking for references to /build in /nix/store/kcgvyjxk848fni8x7q85g8r6ag76v64v-python3.6-Eve-0.8...
/nix/store/jd1qiqk1q3f5jdvra3kw673mnsxpq6w6-python2.7-Eve-0.8
/nix/store/kcgvyjxk848fni8x7q85g8r6ag76v64v-python3.6-Eve-0.8

@GrahamcOfBorg build python27Packages.flask-pymongo python36Packages.flask-pymongo  python27Packages.pytest-rerunfailures python36Packages.pytest-rerunfailures python36Packages.wordfreq

Success on x86_64-linux (full log)
Attempted: python27Packages.flask-pymongo, python36Packages.flask-pymongo, python27Packages.pytest-rerunfailures, python36Packages.pytest-rerunfailures, python36Packages.wordfreq
Partial log (click to expand)
tests/test_chinese.py ...                                                [ 25%]
tests/test_general.py ...............                                    [ 87%]
tests/test_transliteration.py ...                                        [100%]

=================== 24 passed, 9 deselected in 4.71 seconds ====================
/nix/store/pl6m9s98k9giblsa2b46g53jvaczyfbj-python2.7-Flask-PyMongo-2.1.0
/nix/store/zfww8j0146a7qhav7grkjp7yr096dan1-python3.6-Flask-PyMongo-2.1.0
/nix/store/yq9zxh5w6dm23zdqrqq8bzwcabfh6iz3-python2.7-pytest-rerunfailures-4.1
/nix/store/rr2xvjbfzh48a1zskyy8nax3gpy2f6fv-python3.6-pytest-rerunfailures-4.1
/nix/store/0laqakjzzvycxv38kgvl9anpc4nnb668-python3.6-wordfreq-2.2.0

Success on x86_64-darwin (full log)
Attempted: python27Packages.flask-pymongo, python36Packages.flask-pymongo, python27Packages.pytest-rerunfailures, python36Packages.pytest-rerunfailures, python36Packages.wordfreq
Partial log (click to expand)
tests/test_chinese.py ...                                                [ 25%]
tests/test_general.py ...............                                    [ 87%]
tests/test_transliteration.py ...                                        [100%]

=================== 24 passed, 9 deselected in 4.96 seconds ====================
/nix/store/gnz1h3r5gdzd6lz4j56p3yabbhqfb6n0-python2.7-Flask-PyMongo-2.1.0
/nix/store/ds6ijl3ch1wgnshpqfzfgawlrp4x3gra-python3.6-Flask-PyMongo-2.1.0
/nix/store/nx9qz4p59kd2sxn9d5krr89plwdkcssv-python2.7-pytest-rerunfailures-4.1
/nix/store/jrlf4cz773wnylsfw708gb5vk67rd4mk-python3.6-pytest-rerunfailures-4.1
/nix/store/yyh5pq90w8abld3nhff653df4db8vajn-python3.6-wordfreq-2.2.0

@GrahamcOfBorg build python27Packages.nilearn python36Packages.nilearn

Success on x86_64-darwin (full log)
Attempted: python27Packages.nilearn, python36Packages.nilearn
Partial log (click to expand)
nilearn/input_data/nifti_spheres_masker.py     116     92    21%
nilearn/masking.py                             196     39    80%
nilearn/signal.py                              169     55    67%
nilearn/version.py                              25      8    68%
----------------------------------------------------------------
TOTAL                                         4009   2433    39%
----------------------------------------------------------------------
Ran 161 tests in 6.086s

OK

Success on x86_64-linux (full log)
Attempted: python27Packages.nilearn, python36Packages.nilearn
Partial log (click to expand)
nilearn/signal.py                              169     55    67%
nilearn/version.py                              25      8    68%
----------------------------------------------------------------
TOTAL                                         4009   2433    39%
----------------------------------------------------------------------
Ran 161 tests in 7.556s

OK
/nix/store/wrzignqy34k5nhcafibf9ag7v2dqqgcm-python2.7-nilearn-0.4.2
/nix/store/3g92356qfqll5cfqmwm5yv1qf7syv9nm-python3.6-nilearn-0.4.2

Success on aarch64-linux (full log)
Attempted: python27Packages.nilearn, python36Packages.nilearn
Partial log (click to expand)
nilearn/signal.py                              169     55    67%
nilearn/version.py                              25      8    68%
----------------------------------------------------------------
TOTAL                                         4009   2433    39%
----------------------------------------------------------------------
Ran 161 tests in 61.700s

OK
/nix/store/fgabfnnl13h0p5fa2n1h4vzsldp1h3qn-python2.7-nilearn-0.4.2
/nix/store/3f4pl6q66l906irpzac21d3f54dx0isc-python3.6-nilearn-0.4.2

backported: 8a93d258cd8..5eb4258a9a1


Update to ACK Runtime v0.9.2

Update the dependent version of ACK runtime to v0.9.2 and update the code-generator version.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

/lgtm


[$500] mWeb - Workspace - Tapping inside checkboxes prevents swiping

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: <IP_ADDRESS>
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Navigate to https://staging.new.expensify.com/
Log in with an expensifail account
Make a workspace
Start adding a fully verified bank account
At "Step 3" tap into a textbox like "SSN"
Swipe up and down

Expected Result:
I should be able to fully reach the top and bottom of the page.
Actual Result:
Tapping inside checkboxes prevents swiping.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[x] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/93399543/cc97639c-4b84-45a3-bdac-3e74adff3733
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~016d8ade2fc0ea2fe3
Upwork Job ID:<PHONE_NUMBER>850705408
Last Price Increase: 2023-12-23

@mountiny I think this will be fixed with VBBA refactor

I agree with @shubham1206agra I think w can close this because:

its minor
and it will be soon fixed by the VBBA refactor


Roof duality fails for very large biases

Description
Roof duality fails for very large biases. This likely has to do with the integer representation for the biases. We could consider representing the biases as floats but that would require a substantial rewrite. Probably coinciding with #519
Steps To Reproduce
The failing unittest
    def test_bug(self):
        # this problem came from a bug report
        bqm = dimod.BQM.from_ising({0: 10.523392650433879,
                                    1: -39048280688.88219,
                                    2:<PHONE_NUMBER>2.36428,
                                    3: -5.000842227386997,
                                    4: -16.690479543295037,
                                    5: 4.417499488585156,
                                    6: -24381010244.474003,
                                    7:<PHONE_NUMBER>8.672665,
                                    8:<PHONE_NUMBER>3.193893,
                                    9: -1.9989039139652438,
                                    10: -46279675131.17227,
                                    11:<PHONE_NUMBER>0.32409,
                                    12:<PHONE_NUMBER>3.963364,
                                    13:<PHONE_NUMBER>2.22266,
                                    14: -7.0913365565693285,
                                    15:<PHONE_NUMBER>4.41787,
                                    16: -10.273087811652433,
                                    17: -531512757273.64703,
                                    18: -1126767402.0293868,
                                    19: -42230450842.39054,
                                    20: -47033956592.14563,
                                    21: -27726720308.549458,
                                    22:<PHONE_NUMBER>1.479404,
                                    23: 1.0868645977455824,
                                    24: -20159445276.715168,
                                    25: -34567655953.99183,
                                    26: -19581468519.21248},
                                   {(9, 21):<PHONE_NUMBER>.77281,
                                    (9, 22): 636173777.3249484,
                                    (9, 23): -0.6550686426634117,
                                    (9, 24): -5014960058.848128,
                                    (9, 25):<PHONE_NUMBER>.956098,
                                    (9, 26):<PHONE_NUMBER>.5539885,
                                    (10, 11): 6.780692101888206e+18,
                                    (10, 12): 1.5410344102459628e+19,
                                    (10, 13): 1.6096104754483446e+19,
                                    (10, 14):<PHONE_NUMBER>.129975,
                                    (10, 15): -2.452029601362855e+19,
                                    (10, 16):<PHONE_NUMBER>.828724,
                                    (10, 17): 2.658565804720803e+19,
                                    (10, 23): -382606162.56778306,
                                    (10, 24): -2.1804153197546942e+19,
                                    (11, 25): -1.8875523487611957e+19,
                                    (11, 26): 4.790306482624358e+18,
                                    (12, 13): -3.356432458024334e+19,
                                    (12, 14):<PHONE_NUMBER>.96633,
                                    (12, 15): 1.2135530767786504e+19,
                                    (12, 16):<PHONE_NUMBER>.489932,
                                    (12, 18): -9.596619364179165e+18,
                                    (12, 19): 1.219064925469795e+19,
                                    (12, 20): -2.5733271538151244e+19,
                                    (12, 21): -2.8763393131594457e+19,
                                    (12, 22): 3.1147212017876025e+19,
                                    (12, 23): -2516211152.8181996,
                                    (12, 24): -2.93218565686095e+19,
                                    (12, 25): -1.6431725371660515e+19,
                                    (12, 26): 5.430065520339268e+18,
                                    (13, 14):<PHONE_NUMBER>.834405,
                                    (13, 15): -2.1224823296048124e+19,
                                    (13, 16): -727263493.1828315,
                                    (14, 24): -124098068.51084864,
                                    (14, 25):<PHONE_NUMBER>.176464,
                                    (14, 26): -2094181138.8754666,
                                    (15, 16): -1683595992.2227316,
                                    (15, 17): -3.0216593722710663e+19,
                                    (15, 18): 3.805757487349459e+19,
                                    (15, 19): -1.9314726645306302e+19,
                                    (15, 20): -6.757868291924533e+18,
                                    (15, 21): 4.953853831669041e+18,
                                    (15, 22): 7.535973737137298e+18,
                                    (15, 23): -671093485.1265225,
                                    (25, 26): -9.08941137733334e+18})

Additional Context
See #516 which was a PR to fix this behavior.

Roof duality also fails for small biases when sampling_mode=True:
bqm = dimod.BinaryQuadraticModel.from_ising({}, {(0, 1): -1, (1, 2): 3})
dimod.roof_duality.fix_variables(bqm, sampling_mode=True)
This BQM has no biases, so should not fix any variables in sampling mode.

Another failing example
dimod.fix_variables(dimod.BQM.from_qubo({(0,0):2**63-512}))

which causes undefined behaviour from the casting at https://github.com/dwavesystems/dimod/blob/39f9273b5995bb939934931034ed37508def14fb/dimod/roof_duality/src/fix_variables.cpp#L1195

No longer relevant after https://github.com/dwavesystems/dimod/pull/829


Bloxstrap : An exception occured while running Bloxstrap

System.IO.FileFormatException: The image decoder cannot decode the image. The image might be corrupted.
===== Inner Exception =====
System.Runtime.InteropServices.COMException: The image is unrecognized. (0x88982F60)
It's says this while i was going into bootstrapper

Where's the log file?

Bloxstrap_20230802T132854Z.log
Try read at 2023-08-02T13 : 29 : 01Z to 2023-08-02T13 : 29 : 11Z
It's starting to open log file itself and i get an error

Are you sure this is the correct log? This isn't showing any error.

Well?


[Google Test] TestCase adhoc test result is not reported as failure

https://github.com/google/googletest/pull/1615

なんか直ったっぽい？

https://github.com/google/googletest/commit/9ed99c6c837ae1cbfcabd36959fc802ebb5ae07f


'Back' button doesn't work on asset details page

Describe the bug
The back button (looks like the '<' symbol) is not a clickable link on the asset details page.
Environment

AEM Version: 6.4
Asset Share Commons Version: 1.5.0
Author

To Reproduce
Steps to reproduce the behavior:

Go to /path/to/asset/details/page.html (you can just use the sample content provided here on github to generate a details page)
Click on the back button (looks like '<' symbol at top of page)
Nothing happens

Expected behavior
Should return to the parent page (in the sample content, the parent page is the search page)
Additional context
We found a workaround for this in our own project. In this file we changed line 27 from:
$('.cmp-details-title a[data-asset-share-id="return-link"]').each(function(index, element) {
to
$('.cmp-details-title').each(function(index, element) {
and we changed line 44 from
$(element).attr("href", returnUrl);
to
$(element).wrapInner('<a href="' + returnUrl + '" />');
This resolved the issue for us, but I wanted to know if there was a better solution to the problem.
Thanks for your consideration!

Thanks, @jlecavalier for opening the issue! Is this reproducible in all browsers or just specific ones? Can you try and reproduce the bug in the latest release, 1.6.0?

@jlecavalier I'm not able to reproduce this. Feel free to re-open if you have more information.


handle input/rendering latency thing

this is likely due to how the lines are rendered. iirc the lines are rendered one character at a time which means we have to do a lot of work everytime we modify the buffer?

yep, every character being rendered was causing a new allocation (on the heap!!) for an sdl texture, very expensive operation which is now cached. this fixes most of the latency but i feel like the text rendering could probably be optimised even further but for now this issue is solved.
this is fixed in the latest commit for the strife library however, no code changes were needed in the text editors source code.


Fix spawn_check_exit status to make sense and return bool

I'm not sure who is going to be calling this function, but it's a little silly to have it returning a Result<(), Error> which can't provide the caller with any useful information.  This fixes the return value.
I ended up adding a new file, src/functions.rs with only this one function in it.

From upstream source code g_spawn_check_exit_status has no cases of returning false and error==null,
so IMHO generated return type is good for rust
https://github.com/GNOME/glib/blob/master/glib/gspawn.c#L886-L926
https://github.com/GNOME/glib/blob/master/glib/gspawn-win32.c#L1222-L1239

@GuillaumeGomez, @sdroege please look at this PR


Copy to clipboard mnemonic at new account registration page

It would be nice to have a "Copy to clipboard" button at the mnemonic page while registering with new account account

implemented


🚀 Feature Request: D1 max expression tree depth example and discussion

Describe the solution
I upgraded my wrangler v2 to v3 and in that process I start getting Expression tree is too large (maximum depth 20) for some queries.
In the Discord, we figured out that wrangler v2 and my prod database are on the alpha backend (which explains why it's been working on prod for the whole time). But the new version of wrangler seems to have created a beta-d1 binding.
I've been asked to submit the query here so we can discuss potential use cases where a higher depth than 20 may be necessary and useful. The query is in drizzle, I have done research but haven't found a good way to extract the generated SQL:
  const teamArticles = await db.query.articles.findMany({
    where: ownerOrInTeam(articles.userId, authUser), // this is one equality check
    with: {
      pineconeReferences: true,
      outlineDrafts: { // if I do outlineDrafts: true, I am not over 20 anymore
        with: { // this seems to be the edge at which it goes over 20 seemingly
          draftPieces: true
        }
      }
    }
  });

While increasing the limit would be nice of course, since I need basic queries like the one above all the time but the two most important things right now for me:

How can I tell wrangler v3 to use the alpha backend for the local d1 binding (cause my prod db is alpha as well)
Is the alpha DB outdated? Do I need to worry it's going to get sunset soon?
Can I not create a new alpha database any more (so I can still use queries like the above)?

There sounds like two issues at play here:

you are testing in local dev vs remote (production)
you have an alpha database

What you are likely seeing is differences in local dev as later versions of wrangler (3.4 and later) use the new backend. You can use an older version of wrangler, but we strongly suggest you migrate your data to the new backend, which has been the default for a few months now.
While we will not forcibly stop you from using it, we aren’t supporting creating new databases on the old backend - this is unfortunately the risk of a public alpha.
We can consider increasing the expression tree depth but without knowing your queries depth (via EXPLAIN) we can’t know what will work for you.

There sounds like two issues at play here:
1. you are testing in local dev vs remote (production)

2. you have an alpha database

What you are likely seeing is differences in local dev as later versions of wrangler (3.4 and later) use the new backend. You can use an older version of wrangler, but we strongly suggest you migrate your data to the new backend, which has been the default for a few months now.

Yes, I am aware why this happens, like what is causing it. I just don't particularly like it and I can't really do anything against it right now.

While we will not forcibly stop you from using it, we aren’t supporting creating new databases on the old backend - this is unfortunately the risk of a public alpha.

Fair enough, I'll keep using it for as long until the depth tree issue is resolved.

We can consider increasing the expression tree depth but without knowing your queries depth (via EXPLAIN) we can’t know what will work for you.

I am not exactly sure how the SQL query is constructed and couldn't find any way to extract the SQL query. I'll forward this to issue to the drizzle team as well so they may be able to give us raw queries or a way to get raw queries.

I've got the query. For reference I'll give you two versions, the original one which is at above 20 depth and one where I leave out the nested with which will reduce to below 20:
(The queries themselves might have lowercase-uppercase mistakes in the field names because I used an online autoformatter. The EXPLAIN QUERY PLAN and EXPLAIN were done with the original everything-in-one-line query.)
Original query:
 SELECT "id",
       "createdat",
       "googlecountry",
       "title",
       "searchquery",
       "snippeturl",
       "snippetcontent",
       "videosranking",
       "relatedsearches",
       "relatedquestions",
       "userid",
       (SELECT COALESCE(Json_group_array(Json_array("id", "articleid",
                                         "pineconeids")),
                       Json_array()) AS "data"
        FROM   "pineconereferences" "articles_pineconeReferences"
        WHERE  "articles_pineconeReferences"."articleid" = "articles"."id") AS
       "pineconeReferences",
       (SELECT COALESCE(Json_group_array(Json_array("id", "createdat",
                                         "articleid",
                                                          (SELECT COALESCE(
                                                          Json_group_array(
                        Json_array
                        ("id", "createdat", "headinglevel",
                        "headingtext"
                        ,
                        "position"
                        ,
                        "selected"
                        , "content", "contentbrief",
                        "outlinedraftid")), Json_array()) AS "data"
                        FROM   "draftpieces"
                        "articles_outlineDrafts_draftPieces"
                        WHERE
                        "articles_outlineDrafts_draftPieces"."outlinedraftid" =
                        "articles_outlineDrafts"."id"))), Json_array()) AS
               "data"
        FROM   "outlinedrafts" "articles_outlineDrafts"
        WHERE  "articles_outlineDrafts"."articleid" = "articles"."id")      AS
       "outlineDrafts"
FROM   "articles"
WHERE  "articles"."userid" = ? -- params: [1]

Working query:
 SELECT "id",
       "createdat",
       "googlecountry",
       "title",
       "searchquery",
       "snippeturl",
       "snippetcontent",
       "videosranking",
       "relatedsearches",
       "relatedquestions",
       "userid",
       (SELECT COALESCE(Json_group_array(Json_array("id", "articleid",
                                         "pineconeids")),
                       Json_array()) AS "data"
        FROM   "pineconereferences" "articles_pineconeReferences"
        WHERE  "articles_pineconeReferences"."articleid" = "articles"."id") AS
       "pineconeReferences",
       (SELECT COALESCE(Json_group_array(Json_array("id", "createdat",
                                         "articleid")),
                       Json_array()) AS "data"
        FROM   "outlinedrafts" "articles_outlineDrafts"
        WHERE  "articles_outlineDrafts"."articleid" = "articles"."id")      AS
       "outlineDrafts"
FROM   "articles"
WHERE  "articles"."userid" = ? -- params: [1]

Original query EXPLAIN QUERY PLAN:
QUERY PLAN
|--SCAN articles
|--CORRELATED SCALAR SUBQUERY 1
|  `--SCAN articles_pineconeReferences
`--CORRELATED SCALAR SUBQUERY 3
   |--SCAN articles_outlineDrafts
   `--CORRELATED SCALAR SUBQUERY 2
      `--SCAN articles_outlineDrafts_draftPieces

Working query EXPLAIN QUERY PLAN:
|--SCAN articles
|--CORRELATED SCALAR SUBQUERY 1
|  `--SCAN articles_pineconeReferences
`--CORRELATED SCALAR SUBQUERY 2
   `--SCAN articles_outlineDrafts

Original query EXPLAIN:
addr  opcode         p1    p2    p3    p4             p5  comment
----  -------------  ----  ----  ----  -------------  --  -------------
0     Init           0     97    0                    0   Start at 97
1     OpenRead       0     5     0     11             0   root=5 iDb=0; articles
2     Rewind         0     96    0                    0
3       Column         0     10    1                    0   r[1]= cursor 0 column 10
4       Ne             2     95    1     BINARY-8       84  if r[1]!=r[2] goto 95
5       Rowid          0     3     0                    0   r[3]=articles.rowid
6       Column         0     1     4                    0   r[4]=articles.createdAt
7       Column         0     2     5                    0   r[5]= cursor 0 column 2
8       Column         0     3     6                    0   r[6]= cursor 0 column 3
9       Column         0     4     7                    0   r[7]= cursor 0 column 4
10      Column         0     5     8                    0   r[8]= cursor 0 column 5
11      Column         0     6     9                    0   r[9]= cursor 0 column 6
12      Column         0     7     10                   0   r[10]= cursor 0 column 7
13      Column         0     8     11                   0   r[11]= cursor 0 column 8
14      Column         0     9     12                   0   r[12]= cursor 0 column 9
15      Column         0     10    13                   0   r[13]= cursor 0 column 10
16      BeginSubrtn    0     16    0                    0   r[16]=NULL
17        Null           0     17    17                   0   r[17..17]=NULL; Init subquery result
18        Integer        1     18    0                    0   r[18]=1; LIMIT counter
19        Null           0     19    22                   0   r[19..22]=NULL
20        OpenRead       1     21    0     3              0   root=21 iDb=0; pineconeReferences
21        Rewind         1     31    0                    0
22          Column         1     1     1                    0   r[1]= cursor 1 column 1
23          Rowid          0     23    0                    0   r[23]=articles.rowid
24          Ne             23    30    1     BINARY-8       83  if r[1]!=r[23] goto 30
25          Rowid          1     24    0                    0   r[24]=pineconeReferences.rowid
26          Column         1     1     25                   0   r[25]= cursor 1 column 1
27          Column         1     2     26                   0   r[26]= cursor 1 column 2
28          Function       0     24    23    json_array(-1)  0   r[23]=func(r[24..26])
29          AggStep        0     23    22    json_group_array(1)  1   accum=r[22] step(r[23])
30        Next           1     22    0                    1
31        AggFinal       22    1     0     json_group_array(1)  0   accum=r[22] N=1
32        SCopy          22    17    0                    0   r[17]=r[22]
33        NotNull        17    37    0                    0   if r[17]!=NULL goto 37
34        Once           0     36    0                    0
35        Function       0     0     27    json_array(-1)  0   r[27]=func()
36        SCopy          27    17    0                    0   r[17]=r[27]
37        DecrJumpZero   18    38    0                    0   if (--r[18])==0 goto 38
38      Return         16    17    1                    0
39      Copy           17    14    0                    0   r[14]=r[17]
40      BeginSubrtn    0     28    0                    0   r[28]=NULL
41        Null           0     29    29                   0   r[29..29]=NULL; Init subquery result
42        Integer        1     30    0                    0   r[30]=1; LIMIT counter
43        Null           0     31    34                   0   r[31..34]=NULL
44        OpenRead       2     7     0     3              0   root=7 iDb=0; outlineDrafts
45        Rewind         2     85    0                    0
46          Column         2     2     35                   0   r[35]= cursor 2 column 2
47          Rowid          0     36    0                    0   r[36]=articles.rowid
48          Ne             36    84    35    BINARY-8       83  if r[35]!=r[36] goto 84
49          Rowid          2     37    0                    0   r[37]=outlineDrafts.rowid
50          Column         2     1     38                   0   r[38]=outlineDrafts.createdAt
51          Column         2     2     39                   0   r[39]= cursor 2 column 2
52          BeginSubrtn    0     41    0                    0   r[41]=NULL
53            Null           0     42    42                   0   r[42..42]=NULL; Init subquery result
54            Integer        1     43    0                    0   r[43]=1; LIMIT counter
55            Null           0     44    53                   0   r[44..53]=NULL
56            OpenRead       3     6     0     9              0   root=6 iDb=0; draftPieces
57            Rewind         3     73    0                    0
58              Column         3     6     35                   0   r[35]= cursor 3 column 6
59              Rowid          2     54    0                    0   r[54]=outlineDrafts.rowid
60              Ne             54    72    35    BINARY-8       83  if r[35]!=r[54] goto 72
61              Rowid          3     55    0                    0   r[55]=draftPieces.rowid
62              Column         3     1     56                   0   r[56]=draftPieces.createdAt
63              Column         3     2     57    2              0   r[57]=draftPieces.headingLevel
64              Column         3     3     58    Heading 2      0   r[58]=draftPieces.headingText
65              Column         3     4     59                   0   r[59]= cursor 3 column 4
66              Column         3     5     60    1              0   r[60]=draftPieces.selected
67              Column         3     7     61                   0   r[61]= cursor 3 column 7
68              Column         3     8     62                   0   r[62]= cursor 3 column 8
69              Column         3     6     63                   0   r[63]= cursor 3 column 6
70              Function       0     55    54    json_array(-1)  0   r[54]=func(r[55..63])
71              AggStep        0     54    53    json_group_array(1)  1   accum=r[53] step(r[54])
72            Next           3     58    0                    1
73            AggFinal       53    1     0     json_group_array(1)  0   accum=r[53] N=1
74            SCopy          53    42    0                    0   r[42]=r[53]
75            NotNull        42    79    0                    0   if r[42]!=NULL goto 79
76            Once           0     78    0                    0
77            Function       0     0     64    json_array(-1)  0   r[64]=func()
78            SCopy          64    42    0                    0   r[42]=r[64]
79            DecrJumpZero   43    80    0                    0   if (--r[43])==0 goto 80
80          Return         41    53    1                    0
81          Copy           42    40    0                    0   r[40]=r[42]
82          Function       0     37    36    json_array(-1)  0   r[36]=func(r[37..40])
83          AggStep        0     36    34    json_group_array(1)  1   accum=r[34] step(r[36])
84        Next           2     46    0                    1
85        AggFinal       34    1     0     json_group_array(1)  0   accum=r[34] N=1
86        Copy           34    29    0                    0   r[29]=r[34]
87        NotNull        29    91    0                    0   if r[29]!=NULL goto 91
88        Once           0     90    0                    0
89        Function       0     0     65    json_array(-1)  0   r[65]=func()
90        SCopy          65    29    0                    0   r[29]=r[65]
91        DecrJumpZero   30    92    0                    0   if (--r[30])==0 goto 92
92      Return         28    41    1                    0
93      Copy           29    15    0                    0   r[15]=r[29]
94      ResultRow      3     13    0                    0   output=r[3..15]
95    Next           0     3     0                    1
96    Halt           0     0     0                    0
97    Transaction    0     0     35    0              1   usesStmtJournal=0
98    Variable       1     2     0                    0   r[2]=parameter(1,)
99    Goto           0     1     0                    0

Working query EXPLAIN:
addr  opcode         p1    p2    p3    p4             p5  comment
----  -------------  ----  ----  ----  -------------  --  -------------
0     Init           0     67    0                    0   Start at 67
1     OpenRead       0     5     0     11             0   root=5 iDb=0; articles
2     Rewind         0     66    0                    0
3       Column         0     10    1                    0   r[1]= cursor 0 column 10
4       Ne             2     65    1     BINARY-8       84  if r[1]!=r[2] goto 65
5       Rowid          0     3     0                    0   r[3]=articles.rowid
6       Column         0     1     4                    0   r[4]=articles.createdAt
7       Column         0     2     5                    0   r[5]= cursor 0 column 2
8       Column         0     3     6                    0   r[6]= cursor 0 column 3
9       Column         0     4     7                    0   r[7]= cursor 0 column 4
10      Column         0     5     8                    0   r[8]= cursor 0 column 5
11      Column         0     6     9                    0   r[9]= cursor 0 column 6
12      Column         0     7     10                   0   r[10]= cursor 0 column 7
13      Column         0     8     11                   0   r[11]= cursor 0 column 8
14      Column         0     9     12                   0   r[12]= cursor 0 column 9
15      Column         0     10    13                   0   r[13]= cursor 0 column 10
16      BeginSubrtn    0     16    0                    0   r[16]=NULL
17        Null           0     17    17                   0   r[17..17]=NULL; Init subquery result
18        Integer        1     18    0                    0   r[18]=1; LIMIT counter
19        Null           0     19    22                   0   r[19..22]=NULL
20        OpenRead       1     21    0     3              0   root=21 iDb=0; pineconeReferences
21        Rewind         1     31    0                    0
22          Column         1     1     1                    0   r[1]= cursor 1 column 1
23          Rowid          0     23    0                    0   r[23]=articles.rowid
24          Ne             23    30    1     BINARY-8       83  if r[1]!=r[23] goto 30
25          Rowid          1     24    0                    0   r[24]=pineconeReferences.rowid
26          Column         1     1     25                   0   r[25]= cursor 1 column 1
27          Column         1     2     26                   0   r[26]= cursor 1 column 2
28          Function       0     24    23    json_array(-1)  0   r[23]=func(r[24..26])
29          AggStep        0     23    22    json_group_array(1)  1   accum=r[22] step(r[23])
30        Next           1     22    0                    1
31        AggFinal       22    1     0     json_group_array(1)  0   accum=r[22] N=1
32        SCopy          22    17    0                    0   r[17]=r[22]
33        NotNull        17    37    0                    0   if r[17]!=NULL goto 37
34        Once           0     36    0                    0
35        Function       0     0     27    json_array(-1)  0   r[27]=func()
36        SCopy          27    17    0                    0   r[17]=r[27]
37        DecrJumpZero   18    38    0                    0   if (--r[18])==0 goto 38
38      Return         16    17    1                    0
39      Copy           17    14    0                    0   r[14]=r[17]
40      BeginSubrtn    0     28    0                    0   r[28]=NULL
41        Null           0     29    29                   0   r[29..29]=NULL; Init subquery result
42        Integer        1     30    0                    0   r[30]=1; LIMIT counter
43        Null           0     31    34                   0   r[31..34]=NULL
44        OpenRead       2     7     0     3              0   root=7 iDb=0; outlineDrafts
45        Rewind         2     55    0                    0
46          Column         2     2     35                   0   r[35]= cursor 2 column 2
47          Rowid          0     36    0                    0   r[36]=articles.rowid
48          Ne             36    54    35    BINARY-8       83  if r[35]!=r[36] goto 54
49          Rowid          2     37    0                    0   r[37]=outlineDrafts.rowid
50          Column         2     1     38                   0   r[38]=outlineDrafts.createdAt
51          Column         2     2     39                   0   r[39]= cursor 2 column 2
52          Function       0     37    36    json_array(-1)  0   r[36]=func(r[37..39])
53          AggStep        0     36    34    json_group_array(1)  1   accum=r[34] step(r[36])
54        Next           2     46    0                    1
55        AggFinal       34    1     0     json_group_array(1)  0   accum=r[34] N=1
56        SCopy          34    29    0                    0   r[29]=r[34]
57        NotNull        29    61    0                    0   if r[29]!=NULL goto 61
58        Once           0     60    0                    0
59        Function       0     0     40    json_array(-1)  0   r[40]=func()
60        SCopy          40    29    0                    0   r[29]=r[40]
61        DecrJumpZero   30    62    0                    0   if (--r[30])==0 goto 62
62      Return         28    41    1                    0
63      Copy           29    15    0                    0   r[15]=r[29]
64      ResultRow      3     13    0                    0   output=r[3..15]
65    Next           0     3     0                    1
66    Halt           0     0     0                    0
67    Transaction    0     0     35    0              1   usesStmtJournal=0
68    Variable       1     2     0                    0   r[2]=parameter(1,)
69    Goto           0     1     0                    0

Getting the same error for almost all the queries with multiple nested tables using Drizzle ORM. Here is the example of a query that's failing
select
	"id",
	"title",
	"description",
	"slug",
	"sku",
	"stock",
	"is_always_in_stock",
	"is_visible",
	"product_unit_value",
	"product_unit",
	"mrp",
	"sale_price",
	"created_at",
	"category_id",
	"organization_id",
	"tax_id",
	"status",
	"priority",
	"length",
	"width",
	"height",
	"weight",
	(
	select
		json_array("id",
		"name",
		"description",
		"slug",
		"is_visible",
		"image",
		"created_at",
		"organization",
		"priority",
		"parent") as "data"
	from
		(
		select
			*
		from
			"categories" "products_category"
		where
			"products_category"."id" = "products"."category_id"
		limit ?) "products_category") as "category",
	(
	select
		coalesce(json_group_array(json_array("product_id",
		"media_id",
		(
		select
			json_array("id",
			"created_at",
			"url",
			"thumbnail_url",
			"organization_id",
			"media_type") as "data"
		from
			(
			select
				*
			from
				"media" "products_mediaOnProducts_media"
			where
				"products_mediaOnProducts_media"."id" = "products_mediaOnProducts"."media_id"
			limit ?) "products_mediaOnProducts_media"))),
		json_array()) as "data"
	from
		"products_to_media" "products_mediaOnProducts"
	where
		"products_mediaOnProducts"."product_id" = "products"."id") as "mediaOnProducts",
	(
	select
		coalesce(json_group_array(json_array("id",
		"type",
		"name",
		"product_id",
		(
		select
			coalesce(json_group_array(json_array("id",
			"name",
			"value",
			"product_variant_id")),
			json_array()) as "data"
		from
			"product_variant_items" "products_variants_items"
		where
			"products_variants_items"."product_variant_id" = "products_variants"."id"))),
		json_array()) as "data"
	from
		"product_variants" "products_variants"
	where
		"products_variants"."product_id" = "products"."id") as "variants",
	(
	select
		coalesce(json_group_array(json_array("combination_id",
		"price",
		"stock",
		"product_id",
		"media_id",
		"combination_description",
		(
		select
			coalesce(json_group_array(json_array("combination_id",
			"product_variant_item_id")),
			json_array()) as "data"
		from
			"product_variant_combination_items" "products_variantCombinations_items"
		where
			"products_variantCombinations_items"."combination_id" = "products_variantCombinations"."combination_id"),
		(
		select
			json_array("id",
			"created_at",
			"url",
			"thumbnail_url",
			"organization_id",
			"media_type") as "data"
		from
			(
			select
				*
			from
				"media" "products_variantCombinations_media"
			where
				"products_variantCombinations_media"."id" = "products_variantCombinations"."media_id"
			limit ?) "products_variantCombinations_media"))),
		json_array()) as "data"
	from
		"product_variant_combinations" "products_variantCombinations"
	where
		"products_variantCombinations"."product_id" = "products"."id") as "variantCombinations"
from
	"products"
where
	"products"."id" = ?
limit ?

This is something we're looking into. The EXPLAIN QUERY PLAN output does not, unfortunately, make it clear what expression depth the query actually hit/needs.

Thanks, unfortunately, I deleted my alpha database today and created a new one and now I am facing this problem almost in my entire app. Is there a workaround? Do multiple joins add to the query depth?

Thanks, unfortunately, I deleted my alpha database today and created a new one and now I am facing this problem almost in my entire app. Is there a workaround? Do multiple joins add to the query depth?

Yes, the more joins and/or CTEs -> the deeper the query tree.

Are you planning to increase the depth? If yes, anytime soon?

This is something we're looking into. The EXPLAIN QUERY PLAN output does not, unfortunately, make it clear what expression depth the query actually hit/needs.

I provided the actual EXPLAIN without QUERY PLAN as well. Do you need anything else or was that comment not for me (assuming it was because I was the only one giving a EXPLAIN QUERY PLAN)

@elithrar Thank you - Quick question though, what exactly would you need to get the exact expression tree depth?

When is this getting released?

@subhendupsingh This is now deployed. We typically like to wait until the release has been stable for a few days before commenting.

Got it, should I update my wrangler now to get the changes?

@subhendupsingh - this change is not related to wrangler (which is client-side). Your queries, provided they fall within the new limit, should work.
Again, because SQLite's query plan does not make the expression depth of a query obvious, if your query is still hitting the new limit of 100 then I would suggest working to reduce the complexity of your query.

I am still running into the error and it explicitly says that the max depth is 20. I haven't updated anything.

If you're using wrangler dev for local development then you need to update Wrangler so that it's using a version of workerd that has the changes, which would be at least Wrangler 3.12.2.
wrangler dev --remote and deployed Workers don't require a new Wrangler version for changes in the runtime.


Up 2.0 — feature requests

I'm contemplating a 2.0, I have some features in mind of course, but I'd love to hear what people would like to see if you could have anything at all — or if you tried Up and decided it won't work for you, let me know what was blocking you :D
So far the biggest changes would be:

Global by default (with tunable regions)
Wider range of runtime support (not locked into Lambda's runtimes)
Dockerfile support
More cost-effective for larger scale apps
Faster provisioning

Which would you prefer:

Does the cloud provider matter to you?

Which price range seems fair?

I am curious what is on your 2.0 short list.  I have been using up for my website and some other play projects. I use golang primarily. I have some hugo and docsify sites up and the workflow is so simple and basically free other than my premium Up fee. I may soon start using it for some client projects for some integration endpoints. I am a consultant that does a lot of integration work between corporate backend systems. For what I am using UP for right now it, it has the features I need. It is software so it is never done. I have been doing pretty basic stuff so far.
I saw a comment on another thread/issue that your revenue may not be high enough to support this project. Or maybe that was in reference to a major provider addition. I am hoping this stays around.

Besides the bugs I've murmured in, I think 2.0 should probably leverage the proxy design and promise, by supporting another Cloud provider? Proof of concept more than anything else.
I personally advocate Up since it makes it painless to run your code locally. The clincher is to prove this is the case on another cloud platform. Or perhaps show how it can be bundled up & deployed with docker/podman.
As a Go user, would be nice for demos to fit neatly with https://github.com/google/go-cloud

@chrismalek thanks! I'll definitely keep it maintained regardless of income, I can't say I'm making a lot but the maintenance side of things is pretty easy.
@kaihendry if I do a 2.0 it'll probably be on GCP  actually, it's kind of tricky to make something truly portable until the featureset of each cloud provider is comparable, maybe that'll eventually happen but for now AWS has some limitations

Just wanted to comment because I enjoy using Up and it is working well for me in a different number of projects. Up is almost feature complete for me, so it's hard coming up with future features.
A few things that come in mind are:

Spawn background jobs (lambdas) that are all configured on the same project.
Ability to interact with the Serverless Framework / Apex, so a project will be self contained.
Node v10 support (hopefully will be in Up 1.0 as well)

One thing that is always difficult and is probably out of the scope for Up (but worth mentioning) is:

Packing the project in the most optimized way (regarding Node at least). I've actually written a lot of code to optimize the package (automatically create a .upignore file that only takes the needed files from node_modules)

@berzniz appreciate the feedback! I totally agree, I'd love to be able to handle everything in the same project, or at very least have nearly identical UX. Dockerfiles and wider language support is something I'd like, but at the moment that's only doable on GCP. FaaS is fantastic for event processing but I never thought it was a good fit for HTTP, which is sort of why I created Up in the first place, to try and hide that aspect

We love Apex Up. We found it great for:

short-lived prototypes
microsites, pure static sites or sites that rely on an external API
microservice APIs
lightweight analytics service

We've had to fallback to Lambda deployed with Terraform when:

integrating with other AWS infrastructure, such as VPCs, databases, cron-scheduling, custom alarms, custom IAM roles
setting maximum concurrency
needed to use the python-3.7 runtime

It would be even more valuable to us with these features:

easier integration with a data store; DynamoDB, Elasticache, RDS, etc.
support for Dockerfile

or perhaps some examples where Docker is used to build?

support different AWS accounts per stage
easier Github CI integration

we need to setup a custom IAM role & policies to deploy

upgrade to ECS Fargate tasks (probably more useful for Apex)
easier, more complete experience like Heroku

(at least that's the feedback from our website team who uses Heroku for several static Next.JS apps)

example auth integration with Google Auth or AWS Cognito
support for Google Cloud Functions

Also, we'd pay more than $20/mo for Pro, perhaps another tier with some of these features?

Love UP and would be excited for a UP 2.0 even if it cost bit more than current PRO to stay sustainable
Heres my wishlist :)

websockets
support using ALB instead of API gateway
at a certain point alert emails get very noisy. some kind of aggregation ie daily/weekly email which displays errors grouped by message with a count. Or easy integration with other error reporting services which do this

Thanks for the feedback guys! Super helpful

We're using up for our main API and quite happy with it. It sounds amazing that you're considering an 2.0.
Generally, we'd love it if up 2.0 focuses on improving the core rather than the peripheral functions (logs, env, alerting, etc.). For us at least, the current peripheral functions are good enough for basic stuff. We then slowly migrate to dedicated providers as needed, which provide much more functionality than up could possibly do for that specific use case (e.g. log analysis).
What would make up 2.0 a game-changer for us is if it supported:

multi-region deployments (particularly important as AWS ramps up their Global DB capabilities)
continuing background processing after response (e.g. by calling another lambda seamlessly)

We'd be happy to pay more if up had these features :)

@berzniz We're using webpack with up and it's working quite well. Perhaps worth checking out for your use case. Happy to share our webpack.config.js and .upignore if that's helpful.

Just to set expectations it would coming after my next product, which is a few months away, so it could still be a while but I'm a huge fan serverless stuff so I'd love to try and "perfect" this stuff as much as possible!

Any opinions about PaaS? I prefer self-hosting things personally, but it'd be pretty trivial to compete with existing PaaS stuff, UX could be a bit nicer with the PaaS route, but I have a hard time imaging larger companies using any kind of PaaS even if it's effectively just AWS etc under the hood.

just my 2 cents so take this with a grain of salt.
The thing I really like about UP is that I have very good visibility, control, and ownership of the pieces in my own AWS account.  I work in ERP for large and mid sized corporations. The data and applications I work with are extremely sensitive. So I generally come from a paranoid perspective around  giving any vendor access to the data or having any visibility into the data. With everything in my own AWS account, I can audit and even de-provision and know it is secure or deleted.
So if there is some PAAS component:

It needs to be very clear about what it has access to and maybe have granular permissions what I want it to have access to.
Should maybe be "opt-in" so the paranoid can choose not to adopt it or adopt pieces selectively.

Understandable, that's my general impression of more series companies as well, even personally I really prefer to know everything I build is going to be around long-term without trouble.
The downside of this semi-PaaS would be that I'd require access to a zip of your app upon deploy. I can look into making this fan-out portion self-hosted as well, it's probably worth it. Nice to not be on-call anyway :D haha.

My scattered thoughts:
I think that the success of Netlify shows that people are willing to pay for:

Great developer experience and a wow effect
CI / CD flows
Hosted not on their cloud
Very reliable hosting

While Netlify focuses on static website (although they added functions in the past), up could focus on API servers.
Added benefits of hosted up could be:

Automatic build and deploy following GitHub/GitLab webhooks
Preview deploys of every build to a new URL
Deploy to your own AWS account for companies who needs/wants it

This set of requirements might not fit a one person operation (Zeit are doing something similar, but from my experience, they have a lot of downtimes).

To add to the previous reply about Netlify's great developer experience, for me the biggest starting hurdle is the absence of vanity urls (#179). The added stage area forced me to dig through Nuxt configuration and finding out there is no way to solve it without a custom domain.

My problem with the vanity urls I guess is that it's unlikely side projects without a domain would produce any income, so I'm assuming it's not something people would be willing to pay an Up subscription for :D

That is definitely true but it is also a hurdle for users when investigating if using Up is a good option which can cause them to choose something else.

True true, so far I haven't seen much of a return when free things are offered but I'll still keep that in mind.

I'd say add another tier and charge for cryptography.
The $10 to $20 are indies and hobbyists, or personal or small business folks. Don't abandon us/them.
I also work for a company that spends six figures a month on AWS, though - the bill differentiator will be encryption (secure parameter store), and any other IAM specialties you might think of, and maybe the multi-user setup - do you charge per team or per user? It should be per user.

@sudhirj yea I totally agree, going forward I want to try and have all my billing scale with the company, either metered use (when it makes sense) or by team members like you mentioned, I'll make sure to keep that in mind for v2 😄

My recommendation: Charge per seat instead of a flat fee for unlimited seats. You'll have a price model that reflects the support model.
Also, a nice-to-have: make an optional API that mimics Zeit Now, so people can easily migrate!

@loganpowell thanks for the feedback! I definitely feel better with self-hosted as well, seems like most people prefer it which is good to know.
If I do a 2.0 the per-seat model would be great, the only problem I suppose is that say you're deploying in CI, then you effectively have one user/seat, so it might be a bit tricky with this kind of product.

suppose is that say you're deploying in CI, then you effectively have one user/seat

Perhaps - in this case - you would charge per container

I'm just going to post some of my little startups experience and usage of now.
Usage:
Now v1: auto scaling, long running process, and realtime

We have a sophisticated piece time scheduler and it needs to be long running process
We had our api gateway with some real-time functionality using now v1
We have a live event tracker that would be talked to via websockets

Now v2: FaaS, ephemeral, short running

Good for services that don't need to hold state or be long running
Most services and endpoints tend to fall into v2

The Pain
Since now v1 got shut down we had to build a lot of tooling around polling. However this made 2 of our services particularly Waaaayyyy more expensive. These were the realtime portions of our gateway and event tracker that used to happen via sockets and were pretty cheap in now v1.
To the point where those 2 portions of our services account for 97% of our bill.
Solution
We moved the real time portions of our stack into Digital Ocean and use a project we found on github called exoframe to manage and host our realtime code. The downsides are, there are no scaling capabilities built into the project, and the work on the scaling functionality is To be determined. Exoframe is awesome tho:

Automatic domain aliasing, subdomains
Lets Encrypt
Easy deploys

Once we moved to Digital Ocean + Exoframe our bill shrunk from a couple hundred dollars(depending on the events we chose to track) a month to ~$50.
However we lost a lot of things in doing so:

Logging became harder
Tracing became harder
Observability of uptime

Perfect world
In a perfect world we would be able to use one service that offers both to us with a simple cli to create deployments, dev environment to simulate production (now dev is painfully slow), and tools to monitor our services (Apex Log/Ping) within a unified platform.
A couple more things I wish would be available:

Metric reporting per lambda or long running services

How long a function ran
How much memory was used
number of serverless invocations
bandwidth
serverless execution

Billing receipts with break down of costs per lambda and running service. now is probably the worst at this. Their billing receipts don't do cost breakdowns and if you want to see which function incurred the highest cost you have to download a csv and find uuids and try to figure out how to map them to a function. It is time consuming and agonizing to do this every month 😔.

@kennetpostigo awesome thanks a lot for the feedback!
Support for stuff like WebSockets will likely just come down to platform support, but I'll see what I can do to offer it in the ones which can utilize it.
When it comes to local development I'll definitely keep that in mind, for the most part you'd just write your app(s) as normal HTTP servers and then choose a platform (GCP, AWS, *). I'm still brainstorming how I want to support FaaS related features for background work / cron jobs etc, those will definitely have to be simulated locally.
I remember you mentioning the cost breakdown issue, I'll keep that in mind! It might be cool to have some daily/weekly/monthly digests of general usage, like hey your API is receiving 200% traffic this week, cost is up to XXX.
Figuring out the billing model is a bit tricky, I want individuals to be able to afford it but also scale for larger companies. It might not be possible anyway, since a huge team could use Up in CI only and I'd just get the $5 or whatever it is haha, definitely won't be as high as $25 per seat though

I would love to have web socket support @tj!

@slajax me too haha, it mighttt not be possible just due to platform limitations, but I'll keep an eye on any updates

For 2.0 I’d love to see up become extensible. Being able to use plugins to add provisioning of different services (aws or otherwise) you don’t plan to support directly would be a huge boon in flexibility.
For example I have some projects where it would have been great to have aurora or dynamo serverless in the stack and provision along with lambda keeping the infrastructure all neat and tidy in the project repo and avoiding terraform entirely. Another big plus would be being able to put together a CloudFlare API plugin and have it setup records and certificates automatically instead of manually adding CloudFlare certs in aws and adding the cloudfront cnames in CloudFlare.

Echoing what others said, I like up because I can run it on an AWS account I control, or, on that of a client. For whatever reason, some people are really anti-Google (irrational to pick Amazon over Google, I think, but there you go).
I would like it if Up could automatically integrate with Apex logs in a seamless way.


 margin problems

Hi guyz,
I got a problem with <mj-divider>.
I want a separator (a kind of border in fact) with no spaces or margin around.
Even if I set a margin & padding at 0px on <mj-divider> and on <mj-section>, the generated HTML code is wrapped inside a <p> with 13px margin: 13px 0;
What i do:
<mj-body>

  <mj-section background-color="grey">
    <mj-column>
      <mj-image width="100" src="/assets/img/logo-small.png"></mj-image>
    </mj-column>
  </mj-section>

  <mj-section margin-top="0px" margin-bottom="0" padding-top="0px" padding-left="0px" padding-bottom="0px" padding-right="0px">
  	<mj-divider border-color="#F45E43" padding-top="0px" padding-left="0px" padding-bottom="0px" padding-right="0px"></mj-divider>
  </mj-section>

</mj-body>

What I expected:

What I get:

Maybe I miss something but i didn't see any CSS reset.
In general, I understand that the tool was initially designed to facilitate the building of newsletter but I regret that we don't get a reset mode.Override each padding of each component is a bit tedious.
What do you think about that?
Thanks

Hey there,
Sorry, it's fixed in PR #27 and hasn't release yet. 1.0.4 will be push really soon.
As it's current state, MJML doesn't provide yet a way to reset fully the css. It will come in a near future

Hello @iRyusa ,
Do you already have plans for a reset, or we can propose a PR with our own interpretations ?
Thanks.

@drazik feel free to contribute :+1:  ! I'll have to see if I can give it a shot next week

Fix in 1.0.4 and 1.1.0 @laurent-bientz :+1:

Thank you @iRyusa !


Account for failure in publishing process

We just had some funny failures in the CI during publishing: https://github.com/rustwasm/wasm-bindgen/actions/runs/8138814872/job/22240636231#step:13:1.
This PR changes the code to actually fail the process when we encounter any error during publishing.

It's strange that while I see errors during publishing wasm-bindgen-shared and  wasm-bindgen-backend too, and yet, they did get end up being updated on crates.io. :thinking:

It's strange that while I see errors during publishing wasm-bindgen-shared and  wasm-bindgen-backend too, and yet, they did get end up being updated on crates.io. 🤔

Its because I've rerun the CI five times by now :sweat_smile:.
wasm-bindgen is the last crate that just refuses to be published, so I'm waiting on a request for crates.io permissions to figure it out locally.

Surely it will work for the 6th time... 😈😜

Here is a newer version of publish.rs: https://github.com/bytecodealliance/wasm-tools/blob/a178c9bea591bbcd7608cf0de6f9662eb50f4e40/ci/publish.rs.
Unfortunately it isn't really compatible with our workspace, but would be nice if one day we can update ours as well. The important feature would be to not try and publish crates that were already published, to avoid the rate-limiting issue.


ionic build android --prod very slow

From @huangzk on June 21, 2017 10:37
Ionic version:  (check one with "x")
[ ] 1.x (For Ionic 1.x issues, please use https://github.com/ionic-team/ionic-v1)
[ x] 2.x
[ ] 3.x
I'm submitting a ...  (check one with "x")
[ ] bug report
[x ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:

When I run "ionic build android --prod" in the windows,the time it cost is very large.
Expected behavior:

In the MAC,it cost about 40 minutes..why?
What difference with them..
Copied from original issue: ionic-team/ionic#12122

From @huangzk on June 21, 2017 10:38

From @AmitMY on June 21, 2017 11:32
Building with --prod uses the AoT compiler, otherwise it uses the JiT compiler.
You can see that building for production has a much smaller bundle size, and is much faster on devices.
We would all love it to be faster, but it is a core angular thing, and not ionic's.
40 minutes is an odd result. usually it is 3 minutes compared to less than a minute (from my experience).
Read more - https://angular.io/guide/aot-compiler

@huangzk , exactly how big is your project? How many pages does your app have? @AmitMY is correct that most of the time here is going to be spent in AOT. AOT compiling is a very complicated, cpu intensive process. Also, from my experience build times with AOT drastically increase based on the amount of code you have. 40 minutes definitely sounds odd, but if your app is really huge, that time would not completely surprise me.

From @huangzk on June 21, 2017 14:44
And In the window ,to build android apk,use more than 2 hoIurs...  It's normal ?
of course,our project is  a little big..

From @AmitMY on June 21, 2017 17:31
@jgw96 If I compile all of the e2e tests for ionic as one project (a lot of pages), it takes about 15 minutes. (in production mode). so 40 only makes sense for 500 pages+ (gulp e2e.prod --f=snapshot/basic)

From @aggarwalankush on June 22, 2017 5:34
I also raised the similar issue in ionic-app-scripts https://github.com/ionic-team/ionic-app-scripts/issues/920 @danbucholtz mentioned it's slow for prod builds because of AOT. But for me, it takes few minutes for prod and less than a minute for non-prod. @huangzk you mentioned, your app took more than 2 hours to build, it's too much. Did you left it overnight to build 😄
Maybe try following as mentioned by dan in above issue
"config": {
    "ionic_build_to_es5": false
  }

From @huangzk on June 22, 2017 9:48
@jgw96  Our page is contain large lots of model and page, the number about 100 pages,now...last time we built  1.0 project costs 40 minutes,  and now ,with pages increasing, it comes to 2 hours....

Hey @huangzk , thanks for the info. Are you all doing code splitting? Also, can you try @aggarwalankush 's suggestion and see if that helps?

From @huangzk on June 22, 2017 9:50
above-mentioned is in the windows ,,,in the mac  ,last time we built 1.0 project costs 10 minutes, and now ,with pages increasing, it comes to 40 minutes..

From @huangzk on June 23, 2017 7:12
@jgw96 yes,we defined  some module to let project more clear and  develop more fast,as the picture

the way can affect the compile? I don't know..I will try @aggarwalankush 's suggestion..

From @huangzk on June 23, 2017 13:58
@jgw96  the time ccost....
![lks 75phv 7mgn v o z o](https://user-images.githubusercontent.com/25288972/27485355-fdfe6422-585e-11e7-8b54-a356889abf9b.jpg
   the time cost

Hello, all! At this point, this issue seems to be more of an app-scripts issue than an actual framework issue. Because of this, I am going to move this issue to the app-scripts repo and we can continue the conversation there.

Hello @huangzk , would you be able to post your ionic info please?

@jgw96  ionic info is ?
{
"name": "ionic-hello-world",
"author": "Ionic Framework",
"homepage": "http://ionicframework.com/",
"private": true,
"scripts": {
"clean": "ionic-app-scripts clean",
"build": "ionic-app-scripts build",
"ionic:build": "ionic-app-scripts build",
"ionic:serve": "ionic-app-scripts serve"
},
"dependencies": {
"@angular/common": "2.4.8",
"@angular/compiler": "2.4.8",
"@angular/compiler-cli": "2.4.8",
"@angular/core": "2.4.8",
"@angular/forms": "2.4.8",
"@angular/http": "2.4.8",
"@angular/platform-browser": "2.4.8",
"@angular/platform-browser-dynamic": "2.4.8",
"@angular/platform-server": "2.4.8",
"@ionic/storage": "^2.0.1",
"highcharts": "5.0.9",
"intl": "1.2.4",
"ionic-angular": "2.2.0",
"ionic-native": "2.8.1",
"ionicons": "3.0.0",
"lodash": "^4.17.4",
"rxjs": "5.0.1",
"sw-toolbox": "3.4.0",
"typings": "^2.1.0",
"xml2js": "^0.4",
"zone.js": "0.7.2"
},
"devDependencies": {
"@ionic/app-scripts": "1.1.4",
"rollup-plugin-replace": "^1.1.1",
"typescript": "2.0.9"
},
"cordovaPlugins": [
"cordova-plugin-whitelist",
"cordova-plugin-statusbar",
"cordova-plugin-splashscreen",
"ionic-plugin-keyboard",
"cordova-plugin-device",
"cordova-plugin-console"
],
"cordovaPlatforms": [
"ios",
{
"platform": "ios",
"version": "",
"locator": "ios"
}
],
"description": "xapp: An Ionic project"
}

some info missing .just to see the picture.

eg:

eg:

The step cleancss is last about 4442s.....so odd thing..

eg:

Are you using a bunch of colors in the color map? That seems to be the culprit of really slow minify css times.
This is a known limitation and we don't recommend doing this. We'll come up with something better in the future but it's low priority right now.
Thanks,
Dan

@danbucholtz How many colors is too many? I have about 8 and things are getting pretty slow... Takes about 15 minutes to do a prod build at this point.  Which is ... alright I guess but really seems excessive.

Hello,
Please remove www folder,node modules,platforms, and npm install
this solved my issue.