Tensorflow stops training on random epoch

When I run the following code on GPU, it trains well for some epoches and then just hangs.
While hanged processes are still alive but the GPU usages become 0%.
In the below code I am using Dataset API from tf.contrib.data.Dataset. But I also tried using placeholder and feed dictionary approach which hangs as well on random epoch during training.
I am struggling with the problem for last 2-3 weeks and cannot find a way out.
I am running the code on a remote GPU cluster. Here are some information about cluster node,
Using tensorflow gpu version 1.4
   NodeName=node050 Arch=x86_64 CoresPerSocket=1
   CPUAlloc=0 CPUErr=0 CPUTot=24 CPULoad=12.03 Features=Proc24,GPU4
   Gres=gpu:4
   NodeAddr=node050 NodeHostName=node050 Version=15.08
   OS=Linux RealMemory=129088 AllocMem=0 FreeMem=125664 Sockets=24 Boards=1
   State=IDLE ThreadsPerCore=1 TmpDisk=0 Weight=1 Owner=N/A
   BootTime=2017-11-07T08:20:00 SlurmdStartTime=2017-11-07T08:24:06
   CapWatts=n/a
   CurrentWatts=0 LowestJoules=0 ConsumedJoules=0
   ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s

CODE
dat_split = np.load('data/dat_split2.npy')
X_train = dat_split[0].astype(np.float32)
X_test = dat_split[1].astype(np.float32)
y_train = dat_split[2].astype(np.int32)
y_test = dat_split[3].astype(np.int32)

num_epochs = 100

train_data_len = X_train.shape[0]
test_data_len = X_test.shape[0]
num_joints = len(considered_joints)
num_classes = len(classes)

############ taking batch_size even data##########
even_train_len = (train_data_len//batch_size)*batch_size
even_test_len = (test_data_len//batch_size)*batch_size

X_train = X_train[:even_train_len]
X_test = X_test[:even_test_len]
y_train = y_train[:even_train_len]
y_test = y_test[:even_test_len]

train_dat = Dataset.from_tensor_slices((X_train, y_train))
train_dat = train_dat.batch(batch_size)

test_dat  = Dataset.from_tensor_slices((X_test, y_test))
test_dat = test_dat.batch(batch_size)

iterator = Iterator.from_structure(train_dat.output_types, train_dat.output_shapes)

trainig_iterator_init = iterator.make_initializer(train_dat)
test_iterator_init = iterator.make_initializer(test_dat)

if __name__ == '__main__':

    global_cell = GlobalLSTM(num_units=num_units_each_cell, num_joints=num_joints)   #GlobalLSTM is a subtype of RNNCell
    next_element = iterator.get_next()
    X_loaded2, Y_loaded = next_element
    X_loaded = tf.where(tf.is_nan(X_loaded2), tf.zeros_like(X_loaded2), X_loaded2)

    init_state = global_cell.zero_state((batch_size), tf.float32)
    rnn_ops, rnn_state = tf.nn.dynamic_rnn(global_cell, X_loaded, dtype=tf.float32)

    with tf.variable_scope('softmax__'):
        W = tf.get_variable('W', [(num_joints)*num_units_each_cell, num_classes], initializer=tf.truncated_normal_initializer(0.0, 1.0))
        b = tf.get_variable('b', [num_classes], initializer=tf.truncated_normal_initializer(0.0, 1.0))

    final_logits = tf.matmul(rnn_state[1], W) + b       # taking h state of rnn
    with tf.name_scope("loss_comp"):
        total_loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=final_logits, labels=tf.one_hot(Y_loaded, num_classes)))
    with tf.name_scope("train_step"):
        train_step = tf.train.AdamOptimizer(learning_rate).minimize(total_loss)

    with tf.name_scope("pred_accu"):
        predictions = tf.nn.softmax(final_logits)
        pred2 = tf.reshape(tf.argmax(predictions, 1), [-1, 1])
        correct_pred = tf.equal(pred2, tf.cast(Y_loaded, tf.int64))
        accuracy_ = tf.reduce_mean(tf.cast(correct_pred, tf.float32))

    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())

        tic = time.clock()
        for step in range(num_epochs):
            sess.run(trainig_iterator_init)
            batch_cnt = train_data_len//batch_size
            epch_loss = 0.0
            epch_acc = 0.0
            for bt in range(batch_cnt):
                _, loss_, acc = sess.run([train_step, total_loss, accuracy_])
                epch_loss += loss_
                epch_acc += acc
            print ('loss after epoch, ', step,': ', epch_loss/batch_cnt, ' ## accuracy : ', epch_acc/batch_cnt)

        print ("optimization finished, time required: ", time.clock()-tic)

		#############test accuracy##############
        batch_cnt = test_data_len//batch_size
        sess.run(test_iterator_init)
        print ('testing accuracy on test data : batch number', batch_cnt)
        epch_acc = 0.0
        for bt in range(batch_cnt):
            acc = sess.run(accuracy_)
            epch_acc += acc
        print ('testing accuracy : ', epch_acc/batch_cnt)

Here are some screen shot of different hangs,
Hanged on an epoch

GPU usage that time

GPU usage while running (not hanged)

Hanged on another eopch

This type of random hanging behavior keeps repeating on each run.
Each time it hangs on a random epoch. That's why I cannot figure out what is going wrong.
By looking at code or other set up can anybody please give me any idea about what is going wrong or how can I debug this out? Thanks

Any idea where it is hanging? Can you get the stack traces?

Hello drpngx,
I am trying to get stack trace. Need to figure out how can I do that on hanged processes. What is confusing to me is that, sometimes it runs up to completion of training, but most of time it hangs somewhere in middle. After printing the epoch loss line it should be in the "sess.run(trainig_iterator_init)". Any guess about why its behaving like this?

You can do gdb attach. You will get many stack traces, for all hanging threads, but typically only one will but stuck in an rpc wait, then you can pop up from there. Not ideal.

Thanks for the advice. I am working on it. Will let you know.

thanks for the advice. i will let you know

It has been 14 days with no activity and the awaiting response label was assigned. Is this still an issue? Please update the label and/or status accordingly.

Can you please close it? I don't find how to. Thanks

Not tracking the problem..


MtnList Pagination

🚀 Feature Request
Paginate MtnDetail results when users are listing either all or a site's manifest tracking numbers. pagination should be implemented in the MtnList component on the front end and the MtnList and the MtnList django view on ther http server.
Lets set the default pagination to 20 manifest (MtnDetails) per page at the moment.
See DRF's docs on pagination here https://www.django-rest-framework.org/api-guide/pagination/
Googles best practice recs here https://developers.google.com/search/docs/specialty/ecommerce/pagination-and-incremental-page-loading

After further research, for items such as MtnList, is may be more efficient (at least for the time being) to only use client side pagination. The only concern being that the queries could become large when not filtereed by a site (when using the "My manifest" feature.
But this will also make it possible to further process data on the client side, such as sorting, filtering, and display..


Python lint a bunch of files not currently python linted

I don't know why some of these files aren't being checked, ah well

@swift-ci please smoke test and merge


Perform crates.io SEO

During some usability studies, people couldn't find assert_cli.  Searching for "test command line" and "assert command line" did not return results on crates.io but "test cli" and "assert cli" did.
We should add "command" and maybe "line" tags

Sounds good.
(Alternatively, teach people to use CLI because "command line interface" takes too long to type! …And no, the "interface" is not optional as you are most likely not testing the command line, i.e., a terminal, with assert_cli :trollface:)

Am 26.10.2017 um 17:02 schrieb Ed Page<EMAIL_ADDRESS>During some usability studies, people couldn't find assert_cli. Searching for "test command line" and "assert command line" did not return results on crates.io but "test cli" and "assert cli" did.
We should add "command" and maybe "line" tags
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

#71  is merged, we just need to publish to see if this worked

It works now: test command line, assert command line.


Add option to disable command prompt popup to create project during installation

Is your feature request related to a problem? Please describe.
Attempting to install GAM on Windows through automated means where the installing account is not on an interactive logon session (has a desktop) results in stuck installation due to the prompt to create a project that cannot be interacted with.
Describe the solution you'd like
An installer switch or argument to disable the behavior to create a project at the end of the installation would be the best solution.
Describe alternatives you've considered
N/A
Additional context
I'm using salt to control chocolatey to install. The salt minion runs as a service in a privileged account. This account does not get a desktop session.

bash <(curl -s -S -L https://git.io/install-gam) -l
The -l switch disables project creation.
You can also indicate a path with: -d
Ross
<EMAIL_ADDRESS>
On Dec 8, 2020, at 9:37 PM, lmf-mx<EMAIL_ADDRESS>wrote:
Is your feature request related to a problem? Please describe.
Attempting to install GAM through automated means where the installing account is not on an interactive logon session (has a desktop) results in stuck installation due to the prompt to create a project that cannot be interacted with.
Describe the solution you'd like
An installer switch or argument to disable the behavior to create a project at the end of the installation would be the best solution.
Describe alternatives you've considered
N/A
Additional context
I'm using salt to control chocolatey to install. The salt minion runs as a service in a privileged account. This account does not get a desktop session.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/jay0lee/GAM/issues/1292, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACCTYL235XZWTJ2R6CHL25LST4EJ7ANCNFSM4US7HOLA.

Sorry, Ross, I failed to make it immediately clear. This is on Windows, hence the use of Chocolatey.
The switch would be needed for the exe installer or the internal MSI installer depending on what is calling the prompt.

Got it. I took the popups out of my Advanced GAM Windows installer some time ago.
Ross
<EMAIL_ADDRESS>
On Dec 11, 2020, at 10:26 AM, lmf-mx<EMAIL_ADDRESS>wrote:
Sorry, Ross, I failed to make it immediately clear. This is on Windows, hence the use of Chocolatey.
The switch would be needed for the exe installer or the internal MSI installer depending on what is calling the prompt.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/jay0lee/GAM/issues/1292#issuecomment-743352711, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACCTYL6XQRWYM47LTVIGMGDSUJP6HANCNFSM4US7HOLA.

Heyo @taers232c, wondering if there's any chance of a command line switch to eliminate the popup, as it would help make the validation process for packages being submitted to winget an easier process :) (#1673)


[Bug] Alpha.37 is broken

Due to dependency upgrades an unforeseen error occurs with alpha.37.
TypeError: Missing parameter name at 1: https://git.new/pathToRegexpError
    at name (/usr/local/lib/node_modules/home-assistant-matter-hub/node_modules/path-to-regexp/dist/index.js:73:19)
    at lexer (/usr/local/lib/node_modules/home-assistant-matter-hub/node_modules/path-to-regexp/dist/index.js:91:27)
    at lexer.next (<anonymous>)
    at Iter.peek (/usr/local/lib/node_modules/home-assistant-matter-hub/node_modules/path-to-regexp/dist/index.js:106:38)
    at Iter.tryConsume (/usr/local/lib/node_modules/home-assistant-matter-hub/node_modules/path-to-regexp/dist/index.js:112:28)
    at Iter.text (/usr/local/lib/node_modules/home-assistant-matter-hub/node_modules/path-to-regexp/dist/index.js:128:30)
    at consume (/usr/local/lib/node_modules/home-assistant-matter-hub/node_modules/path-to-regexp/dist/index.js:152:29)
    at parse (/usr/local/lib/node_modules/home-assistant-matter-hub/node_modules/path-to-regexp/dist/index.js:183:20)
    at /usr/local/lib/node_modules/home-assistant-matter-hub/node_modules/path-to-regexp/dist/index.js:294:74
    at Array.map (<anonymous>)

Maybe would also help to redeploy also to docker container registry, there the "latest" is also broken

Just removed the broken version, but cannot assign the latest tag via the web ui 🫣
So no latest exists anymore. Ups.

Fine for now, im setting it to the latest version that did work, thanks for your work!
ghcr.io/t0bst4r/home-assistant-matter-hub:3.0.0-alpha.36

fixed


add colused for best_index on virtual tables

it's since 3.10.0 and later gives us colUsed in sqlite3_index_info struct - it's a bitmask of column used in query. That could potentialy improve some vtabs implementations - if I know I don't need some large/hard to compute column I can skip.

Yes, there is already a TODO here

See #639

Version 0.28.0 released.


Cannot add plugin, Path is null, PSProfile doesn't import anymore

Hi,
I have a function in a ps1 file in a Plugins folder.
I added this folder in the pluginspath configuration, and the function/file is auto-completed when I do add-psprofileplugin.
but when I restart the powershell session, Importing the psprofile module returns me an exception that the path is null.
PSMessageDetails      :
Exception             : System.Management.Automation.CmdletInvocationException: Cannot bind argument to parameter 'Path' because it is null. ---> System.Management.Automation.ParentContainsErrorRecordException: Cannot bind argument to parameter
                        'Path' because it is null.
                           at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)
                           --- End of inner exception stack trace ---
                           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
                           at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input)
                           at System.Management.Automation.PipelineOps.InvokePipeline(Object input, Boolean ignoreInput, CommandParameterInternal[][] pipeElements, CommandBaseAst[] pipeElementAsts, CommandRedirection[][] commandRedirections,
                        FunctionContext funcContext)
                           at System.Management.Automation.Interpreter.ActionCallInstruction`6.Run(InterpretedFrame frame)
                           at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
TargetObject          :
CategoryInfo          : InvalidData: (:) [Import-Module], CmdletInvocationException
FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.ImportModuleCommand
ErrorDetails          :
InvocationInfo        : System.Management.Automation.InvocationInfo
ScriptStackTrace      : at <ScriptBlock>, C:\Users\avezina\Documents\WindowsPowerShell\Modules\PSProfile\<IP_ADDRESS>00627\PSProfile.psm1: line 991
                        at _loadPlugins, C:\Users\avezina\Documents\WindowsPowerShell\Modules\PSProfile\<IP_ADDRESS>00627\PSProfile.psm1: line 956
                        at Load, C:\Users\avezina\Documents\WindowsPowerShell\Modules\PSProfile\<IP_ADDRESS>00627\PSProfile.psm1: line 240
                        at <ScriptBlock>, C:\Users\avezina\Documents\WindowsPowerShell\Modules\PSProfile\<IP_ADDRESS>00627\PSProfile.psm1: line 7263
                        at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo : {}

hello @avezinaATastus ! Thanks for opening this issue up! Can you elaborate on what commands you used (assuming Add-PSProfilePluginPath, but want to confirm). Also, is the function something that you're integrating with PSProfile as a plugin or is it just a function you want loaded into your current session when PSProfile imports?
You should be able to pull up the configuration file @ $PSProfile.Settings.ConfigurationPath. If you open that in your preferred editor and search for PluginPath, you should see the item you added. If you clear that bad path out then reimport PSProfile (e.g. either with -Force or by restarting your PowerShell session), the module should import fine.

I'm going to consider this as a bug for the PluginPaths section so it handles failures a bit better (e.g. log that something failed but no block the overall module import), but I'd also like to make sure that you're using the correct section of PSProfile depending on what the ultimate goal is with that file you're adding to your configuration 😃

I have one repo/folder that has a folder named Plugins. This folder hosts ps1 files, and they have one function each (Might put multiple functions per file if there is nothing against it).
Add-PSProfilePluginPath -Path C:\Users\avezina\gitrepos\My.PSProfile\Plugins -Save
Add-PSProfilePlugin -Name Start-WindowsSandbox -Save

The file Start-WindowsSandbox.ps1 contains this :
Function Start-WindowsSandbox {
    [cmdletbinding(DefaultParameterSetName = "config")]
    [alias("wsb")]
    Param(
        [Parameter(ParameterSetName = "config")]
        [ValidateScript( { Test-Path $_ })]
        [string]$Configuration = "C:\Sandbox\WinSandBox.wsb",
        [Parameter(ParameterSetName = "normal")]
        [switch]$NoSetup
    )

    Write-Verbose "Starting $($myinvocation.mycommand)"

    if ($NoSetup) {
        Write-Verbose "Launching default WindowsSandbox.exe"
        c:\windows\system32\WindowsSandbox.exe
    }
    else {
        Write-Verbose "Launching WindowsSandbox using configuration file $Configuration"
        Invoke-Item $Configuration
    }

    Write-Verbose "Ending $($myinvocation.mycommand)"
}

After doing the two commands (add-*pluginpath and add-*plugin) opening a new powershell session/console won't be able to load PSProfile.
Removing (with Remove-PSProfilePlugin -Name Start-WindowsSandbox -Save) in the initial session didn't solve the problem

Oohh, could it be because of the if ($this.Plugins.Count) in _loadPlugins()
Breaking on line 955 of the PSProfile.psm1 (where the if ($this.Plugins.Count) is) and testing with if ($this.Plugins.Count) {write-host "True"} else {write-host "False"} returns true. I'm going to try with -ge 1


Respect Neovim's sessionoptions setting

It would be great if the plugin could respect Neovim's sessionoptions setting, instead of having to repeat the list. Another option would be to provide a 'default' flag to pass to the plugin's options setting.
Thanks!

Great point! I will look into this, this week!

This should be fixed now, let me know what you think.
I've added in a warning for anyone using a custom options value to let them know to use vim.o.sessionoptions.

It seems to work, thanks for being so responsive about it!


override some cmp mappings

I love this plugin, really stream lining this whole process.
The one thing i am trying to figure out is how to override some of cmp's options.  It looks like setup calls run and run calls the setup to cmp, but i have no way to merge in some options.
I just want to be able to have some of own binds (such as C-n/p for next/prev autocomplete, C-y for accept current autocomplete)
Thoughts?

i looked through the set_preferences code too.  There is an internal_cmp config that i just want to wrap in some of my items :)


Added additional File Lease request and response headers

/azp run automation - sdk

Automation for azure-sdk-for-python


Add support to OpenResy OPM

Hello,
It would be great to see this package being officially supported by OpenResty. Could it be done?
https://opm.openresty.org/
https://github.com/openresty/opm#author-workflow

I do not use Nginx/Openresty. And has no any test sytem.
Also this library hase some deps. (core part depends on data). And some writers has others deps.
So PR are welcome.


Icon request: Files.com

 Files.com

URL of the site or app (required): https://www.files.com/
Logo resources for the icon (optional, but recommended):

Here you go!
https://github.com/aegis-icons/aegis-icons/blob/master/SVG/Files.com.svg
❓ How to add icon(s) to Aegis?


1050: psu-ng: Put input voltage rating on D-Bus

psu-ng: Put input voltage rating on D-Bus
IBM systems must tell the BIOS (called hostboot) the power supply input
voltage rating during a boot, where the rating is 110 or 220.  This is
done via PLDM BIOS attributes where the attribute is backed by a D-Bus
property.

This commit adds support for that by putting the input voltage rating
of each PS on D-Bus using the Value property of the
xyz.openbmc_project.Sensor.Value interface.

The interface is only created for present power supplies, and is only
updated when the application starts up and when the boot starts.

If a power supply is hot added or removed after that, the D-Bus property
doesn't need to be updated as hostboot has already consumed it.

Change-Id: I277516e8d86f1ba1a75b75fe76c67f192d911f88
Signed-off-by: Matt Spinler<EMAIL_ADDRESS>

pulled in from https://github.com/ibm-openbmc/phosphor-power/pull/11


confirm validation rule not working properly in Schema

Reproduction
https://formkit.link/6324052c77cdbd1fa3c4b7d44be76be6
Describe the bug

confirm validation rule not working properly in Schema. However, when using the components, seems to be working just fine as it can be seen here: https://formkit.link/508701d1aa628f6c2040bc47d6c9eb1b
Environment
• OS: MacOS
• Browser Chromium
• Version 126

This is not a bug, it is how schema and the call order works, the example with schema is using both schema and the form component, meaning it is not part of the same tree at the time the confirm works so it doesn't know it has a sibling, if you use a pure schema it should work fine.
That is what I wanted to tell before testing:
https://formkit.link/50b25ee2a3489997346f67c61787f5ca
But it seens to not actually work for some reason.

Hi @fenilli 👋,
Is there any news related to this issue or is there anything I can do to contribute to it?
Thank you!! 😄


ci(release-please): before 1.x any breaking changes will bump minor v…

…ersion

This seems like a flakey test (create feeds manifest and retrieve the data), I have seen it failing randomly elsewhere. Can you please try increasing the time limit for it?

@agazso sure! But I'll make it in a separate PR, should not be part of this one


Add manual page

alts.1

Typos in the current alts page/help screen:
"alts  is  a  defaul  program manager"
"-s -- system overrude, default for root users"

Fixed by https://github.com/openSUSE/libalternatives/commit/ee5a0622900f6b395eb6a89a714e4f7f3fbe19ff and others. Though it needs expanding


Do not allow users to specify names of resources that don't exist yet

This idea stems from accepting  our initial pass at improving validation in #11.  I understand this may be a contentious idea given that it may be a K8s pattern to reference a resource that does not exist because it hasn't been reconciled yet.  But in my view, this is an edge case and it is generally good UX not to allow a user of any product to complicate their experience by referencing entities before they are created.  However, this is just an idea.
ServiceAccount resource:

Validate that the names of the git or registry secrets specified are known to kpack

I generally think we shouldn't let users reference the names of resources that have not yet been declared to avoid potential confusion down the road

Image resource:

Validate that names of the service account and builder referenced are known to kpack

Same reason as above

ServiceAccount is not a kpack resource so, I don't think we would ever attempt to alter the default kubernetes validation behavior.

Validating that an Image's builder exists is intriguing to me.

While I understand and appreciate the desire, this behavior will make installing and using kpack more fought. Level based triggering is fundamental to Kubernetes controllers and it's worth taking the time to really understand.
There can be many reasons why one resource may not exist at a particular moment. Consider an install where one resource in the install references another resource in the same install. Now there is strict ordering for each resource to be created. Let's suppose the resources are defined in the correct order, not all tools apply resources in the same order they are defined. Let's suppose the resources are applied in the correct order, the API Server may not have fully distributed the state for that resource by the time the dependent resource is created. While replication is fast, it is not instantaneous. Now there is a borked half install that isn't functional.
The correct behavior is to only validate resources based on their structure, and not their content. If when reconciling the resource if a dependent resource doesn't exist, or is not ready, that's ok. You indicate in your status that you are not ready. This is the same as if the resource you were depending on is deleted. When the dependency becomes ready, then the dependent resources can update its own state accordingly.

Agreed, that maintaining "out of order" independence is necessary. Many workflows like installation would become cumbersome to impossible if this was not the case. Along the same lines kpack's reconciliation should not behave differently  when dependent objects don't exist.
However, I believe that this issue is slightly more nuanced. There may be valid usecases in kubernetes that validate the existence of dependent resources such as a namespace in metadata.namespace or even the service account in a pod spec.
I would be intrigued about possibly providing some optional mechanism to validate the existence of some dependent resources for kpack deployments where that use case makes sense.


github.com/bobg/go-generics/v2/slices: type inference bug?

Getting this error:

type func(a E, b E) bool of less does not match inferred type func(a E, b E) int for func(a E, b E) int

...for code that explicitly declares less as func(a, b E) bool and uses it in a func(a, b E) bool context. Not an int in sight. Details follow.
What version of Go are you using (go version)?

$ go version
go version go1.21.0 linux/amd64

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE='on'
GOARCH='amd64'
GOBIN=''
GOCACHE='/home/bobg/.cache/go-build'
GOENV='/home/bobg/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/home/bobg/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/home/bobg/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/local/go'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/go/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.21.0'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/home/bobg/go/src/github.com/bobg/go-generics/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build2985862645=/tmp/go-build -gno-record-gcc-switches'

What did you do?
Checked out the latest version of decouple and ran go vet on it:
$ git clone https://github.com/bobg/decouple.git
$ cd decouple
$ go vet ./...

What did you expect to see?
No output.
What did you see instead?
../../../../pkg/mod/github.com/bobg/go-generics/v2@v2.2.1/slices/dropin.go:150:21: type func(a E, b E) bool of less does not match inferred type func(a E, b E) int for func(a E, b E) int
../../../../pkg/mod/github.com/bobg/go-generics/v2@v2.2.1/slices/dropin.go:156:27: type func(a E, b E) bool of less does not match inferred type func(a E, b E) int for func(a E, b E) int
../../../../pkg/mod/github.com/bobg/go-generics/v2@v2.2.1/slices/dropin.go:167:32: type func(a E, b E) bool of less does not match inferred type func(a E, b E) int for func(a E, b E) int

This refers to these lines in my go-generics module: 150, 156, 167.
These lines are meant to make my slices package be a drop-in replacement for the new Go 1.21 slices package. In each case, my less is declared to be func(a, b E) bool (with E a type parameter), and is passed to a corresponding function in Go's slices, also expecting a func(a, b E) bool. Not an int in sight.
Reproducible after go clean -modcache.

Duplicate of #61374

@seankhliao the issue you linked gives 404, please can you update it?


Explore splitting query execution into separate logic that can be distributed to Dataflow or Dataproc

Explore splitting query execution out into separate infrastructure (to port DVT into Dataflow or Dataproc)
This would involve writing sample code that shows how to run DVT on Dataflow importing certain modules and using a new or modified version of our query execution logic.
This could also be allowing the customer to build the combiner logic themselves and using DVT to simply generate the row hash query and write those results to BQ or the target DB

Closing this since we now have issues labeled 'dataflow-template' to work on this


Not able to see comments added in document created - React Native

Code
 /**
   * Returns a test string.
   * @returns {string} The test string "testText".
   * @example const printText = (): string => { return 'testText';};
   */
  const printText = (): string => {
    return 'testText';
  };

  /**
   * Returns sum of numbers.
   * @returns {number} The sum of digits.
   */
  const add = (a: number, b: number): number => {
    return a + b;
  };

Expected Behavior
To see the comments added and functions in document created
Environment

Typedoc version: 0.26.5
TypeScript version: 5.0.4
Node.js version: 21.4.0
OS: MacOS 14.5 (23F79)

Code
 /**
   * Returns a test string.
   * @returns {string} The test string "testText".
   * @example const printText = (): string => { return 'testText';};
   */
  const printText = (): string => {
    return 'testText';
  };

  /**
   * Returns sum of numbers.
   * @returns {number} The sum of digits.
   */
  const add = (a: number, b: number): number => {
    return a + b;
  };

Expected Behavior
To see the comments added and functions in document created
Environment

Typedoc version: 0.26.5
TypeScript version: 5.0.4
Node.js version: 21.4.0
OS: MacOS 14.5 (23F79)

Hi @gilshaan, Displaying comments directly within JSX elements is not natively supported in documentation tools like TypeDoc, which typically focus on comments outside of JSX only.

You should export the artifacts you want to render in your docs.

Hi @Oblarg
I've been working on exporting all the necessary artifacts for TypeDoc, but I'm running into some issues where it's not rendering the details as expected, especially missing the comments before each function inside the code. I've ensured that TypeScript is generating the declaration files and that TypeDoc is configured properly.
Could you please let me know if there's a specific artifact that might be missing? Any insights or suggestions would be greatly appreciated.
Thank you!

Without some runnable reproduction to look at, it's basically impossible to say what's going on with your project. In the snippets you provided, the functions aren't exported, so it makes sense that TypeDoc wouldn't include them.


Prohibit proposing more than one update per epoch

I don't like it. I think we already agreed that in such cases it's more convenient to have a smart constructor and fail during construction rather than do check at later point.

good point, will fix it


support for spark 2.4.0

Spark 2. 4 released soon，compile failure:
[INFO] Compiling 35 source files to /Users/libinsong/Documents/codes/tongdun/td-tispark/core/target/classes at<PHONE_NUMBER>515
[ERROR] /Users/libinsong/Documents/codes/tongdun/td-tispark/core/src/main/scala/org/apache/spark/sql/TiStrategy.scala:598: error: type mismatch;
[ERROR]  found   : Seq[org.apache.spark.sql.catalyst.expressions.Expression]
[ERROR]  required: Seq[org.apache.spark.sql.catalyst.expressions.aggregate.AggregateExpression]
[ERROR]           ) if isValidAggregates(groupingExpressions, aggregateExpressions, filters, source) =>
[ERROR]                                                       ^
[ERROR] /Users/libinsong/Documents/codes/tongdun/td-tispark/core/src/main/scala/org/apache/spark/sql/TiStrategy.scala:605: error: type mismatch;
[ERROR]  found   : Seq[org.apache.spark.sql.catalyst.expressions.Expression]
[ERROR]  required: Seq[org.apache.spark.sql.catalyst.expressions.aggregate.AggregateExpression]
[ERROR]           aggregateExpressions,
[ERROR]           ^
[ERROR] two errors found

Thank you for pointing out, we will fix it when 2.4 is stable.

Thank you for pointing out, we will fix it when 2.4 is stable.
spark 2.4.0 已经release 了
http://central.maven.org/maven2/org/apache/spark/spark-core_2.11/2.4.0/

A branch supporting Spark 2.4.0 is already available on support_spark_2.4.0.


create test set for norma distribution

To test the norma distribution we need tp provide a small test set (say 5 ctrees ) that can be run to verify the integrity (and regression) of the binaries. There should be instructions in the README of the form:
To test the integrity of norma distribution:

cd mydirectory
checkout normatest
cmine normatest

Sure, this sounds like a really sensible idea. I guess the idea would actually be to test the integrity of the whole pipeline though (ami and norma). This is really for the end user's benefit rather than regression testing since almost all of the tests we have are of this type already.
In fact, if this is only for the benefit of new users, should we just have a copy and paste line in the docs to download a very small set of papers from EPMC and then use cmine to transform them?

Peter posted to slack that: "Let's iterate on this. I thnk a small set of papers, especially Open Access from closed publishers will be really valuable"

It's mainly installation verfication for new users but also as a regression on strange platforms. We expect user feedback rather than automated test fails.
And the tests are also useful for  tutorials


groupBy query: limit push down to segment scan is poor performance

Affected Version
0.17.1
Description
When druid-0.17.1 is used, the performance of group by query is worse than druid-0.16.1. When
applylimitpushdowntosegment is set to false in query context, the performance returns to normal.
From this figure, we can see that the CPU consumption is in LimitedBufferHashGrouper.

query performance is according to  query/time from historical log:
{"query/time":13372,"query/bytes":6118553,"success":true,"identity":"allowAll"}
@himanshug

Thanks for the report @xiangqiao123 , do you have any additional details on the query you issued, such as what the limit was, any extractionFn or lookups, and any details about segment size, column type, if string approximate cardinality, or anything else you think might be useful in helping us determine why the performance degraded?

@xiangqiao123 LimitedBufferHashGrouper  does incur some overhead to maintain a heap to apply limit and  if that overhead is more  than cost of processing all rows from segments at  merge stage then it can happen.
can you post your groupBy query?

It looks like the reset is happening on init of LimitedBufferHashGrouper. I'm guessing it's taking a long time because the AlternatingByteBufferHashTable starts out at the max size (tableArenaSize / 2) rather than growing like the regular ByteBufferHashTable does.
The perf regression is probably because https://github.com/apache/druid/pull/8426 was added in 0.17.0, and before then, we wouldn't push down the limit all the way to the segment. I bet the pushdown to the merge buffer level isn't as bad because there's only one merge buffer per query, so the cost of init is only paid once, instead of per segment.
I think to improve the performance we'd need AlternatingByteBufferHashTable to implement growability.

Thanks for the report @xiangqiao123 , do you have any additional details on the query you issued, such as what the limit was, any extractionFn or lookups, and any details about segment size, column type, if string approximate cardinality, or anything else you think might be useful in helping us determine why the performance degraded?

Query statement：
{
"dimensions": [
"host",
"type",
"status"
],
"aggregations": [
{
"type": "longSum",
"fieldName": "count",
"name": "SUM(count)"
}
],
"intervals": "2020-04-08T00:00:00+08:00/2020-04-09T00:00:00+08:00",
"limitSpec": {
"type": "default",
"limit": 50000,
"columns": []
},
"granularity": {
"type": "period",
"period": "PT1M",
"timeZone": "Asia/Shanghai",
"origin": "1970-01-01T00:00:00+08:00"
},
"queryType": "groupBy",
"dataSource": "druid_ds",
"context": {
"useCache": false,
"populateCache": false,
}
}
2.This is about 50 segments，1G  per segment

@xiangqiao123  that is simplest of  queries in terms of aggregation with a largish limit, even with efforts to reduce overheads there would be a non-zero cost in pushing the limit to segment scan phase, for your use case I guess it would be advisable to disable limit pushdown  to segments (in  reality, you might  need to  measure before blindly believing in my claim  though :)
@gianm I agree with your observations. it sucks that we need to implement grow-ability to save cost of zeroing out where we already have allocated all  the memory or is there  any other advantage?.  another consideration, I don't know/remember if we tried,  a  different layout for marking used/unused buckets.
currently first byte of each bucket tells whether that bucket is used or not. Instead, if we reserved  numBucket bytes at  the  start  of buffer and  used those for marking. Zeroing those out might be faster due to batching and even looking  them up might be faster when most of the buckets were mark used.

it sucks that we need to implement grow-ability to save cost of zeroing out where we already have allocated all the memory or is there any other advantage?.

The problem is the memory is not initialized when we allocated it, so it has garbage in it, and therefore we need to initialize the parts we're going to use. And initialization can take a while if your buffer size is big (like a gigabyte, as some people do).

Instead, if we reserved numBucket bytes at the start of buffer and used those for marking.

I bet it would be faster, especially if we use the Memory.clear API. I did some work to migrate some of the groupBy code to use Memory instead of ByteBuffer (#9308, #9314; see also MemoryBenchmark) partially motivated by performance. If we moved this part too it should help with initialization speed.
But growability would probably help even more. It should be relatively straightforward for AlternatingByteBufferHashTable: each time we grow we swap into the other half of the buffer.

... groupBy code to use Memory instead of ByteBuffer (#9308, #9314; see also MemoryBenchmark) partially motivated by performance. If we moved this part too it should help with initialization speed.

thanks for pointing those out .  from a quick look, it looks like  we should just delete ByteBufferHashTable and replace all usage by MemoryOpenHashTable which is a clear winner. Do you see any reason for keeping ByteBufferHashTable around anywhere ?
agree with  everything, all of them could/should be independently done.

from a quick look, it looks like we should just delete ByteBufferHashTable and replace all usage by MemoryOpenHashTable which is a clear winner. Do you see any reason for keeping ByteBufferHashTable around anywhere ?

I don't see a reason to keep ByteBufferHashTable around. The only reason I didn't replace all usages of it was time constraints.


Enable configuration management via viper

What type of PR is this?
Feature
What this PR does / Why we need it?

This PR leverages viper to enable effective configuration management for Backplane CLI.
Users no longer need to switch between different config files based on the OCM environment, the Backplane URL will be dynamically populated based on the OCM environment the user is logged into. UX win!
The configuration filepath, proxy, Backplane URL set by the users via the BACKPLANE_CONFIG, HTTPS_PROXY and BACKPLANE_URL environment variables are respected and given preference over the values defined in the configuration file.

Which Jira/Github issue(s) does this PR fix?
Resolves: OSD-15922
Special notes for your reviewer
In order to test this PR, please create the config.json file in $HOME/.config/backplane folder. The contents of the file should be as follows:
➜ cat .config/backplane/config.json
{
	"proxy-url": "${URL}",
	"ocm-prod": "${URL}",
	"ocm-stg":"${URL}",
	"ocm-int":"${URL}",
	"bp-url-prod": "${URL}",
	"bp-url-stg":"${URL}",
	"bp-url-int":"${URL}"
}

Pre-checks (if applicable)

[x] Ran unit tests locally
[x] Validated the changes in a cluster
[x] Included documentation changes with PR

{
	"proxy-url": "${URL}",
	"ocm-prod": "${URL}",
	"ocm-stg":"${URL}",
	"ocm-int":"${URL}",
	"bp-url-prod": "${URL}",
	"bp-url-stg":"${URL}",
	"bp-url-int":"${URL}"
}

This is a breaking change for the cli config,  I don't think it's a good option to put all those urls in this config.

I don't think it's a good option to put all those urls in this config

Thanks for taking a look, I understand, but what is stopping us from having a single config file? Is it a security concern? Anyhow we are exposing URLs in the current config, with this we don't have to switch between multiple config files until we have a mapping defined in OCM API.
Single config means you are more easy to make mistake, expose different env remind you which env you are accessing.

The vulnerabilities outweigh the use case.
Let us have SDA incorporate this on the OCM side where we have a field in the provision shard object that is the backplane_url where SDA can populate that in the environment DB table exposing it in the cluster payload.

@wanghaoran1988 I've removed the explicit mapping which doesn't break the CLI. This PR integrates viper for config management please take a look.
This work will be followed by https://issues.redhat.com/browse/OSD-15878

/unhold

/lgtm


[WIP] Enable NetworkManager

Running ifup eth0 without it complains that it isn't running
Seems that now we're at the point @kbrock was suggesting in
https://github.com/ManageIQ/manageiq-appliance-build/pull/66
and we need NetworkManager enabled to get an ip address
@simaishi this should fix your issue with the downstream appliances not having an IP address, but I'm not sure what it will do to the upstream ones .... It should be fine .. right?

Yeah, I think we'll hold off on this until we can take a closer look into the implications for the upstream appliance. For now @simaishi is handling the change separately.

Re-opening, as this will be probably needed when we move to CentOS 8.

This change is included in the CentOS 8 update PR: https://github.com/ManageIQ/manageiq-appliance-build/pull/381


Curdleproofs verification does check verify results

Verify functions have the signature
https://github.com/nalinbhardwaj/curdleproofs.pie/blob/087fa9b6b597ee3342d43cfde2ab5ea871dec644/curdleproofs/curdleproofs/same_perm.py#L106
However in CurdleProofsProof.verify those return values are ignored, effectively ignoring the invalidity of the proofs
https://github.com/nalinbhardwaj/curdleproofs.pie/blob/087fa9b6b597ee3342d43cfde2ab5ea871dec644/curdleproofs/curdleproofs/curdleproofs.py#L212
https://github.com/nalinbhardwaj/curdleproofs.pie/blob/087fa9b6b597ee3342d43cfde2ab5ea871dec644/curdleproofs/curdleproofs/curdleproofs.py#L226
https://github.com/nalinbhardwaj/curdleproofs.pie/blob/087fa9b6b597ee3342d43cfde2ab5ea871dec644/curdleproofs/curdleproofs/curdleproofs.py#L257

Could that be because these proofs will assert if they are not valid?

Could that be because these proofs will assert if they are not valid?

same_perm_proof
https://github.com/nalinbhardwaj/curdleproofs.pie/blob/087fa9b6b597ee3342d43cfde2ab5ea871dec644/curdleproofs/curdleproofs/same_perm.py#L128
https://github.com/nalinbhardwaj/curdleproofs.pie/blob/087fa9b6b597ee3342d43cfde2ab5ea871dec644/curdleproofs/curdleproofs/same_perm.py#L141-L144
Where grand_prod_proof
https://github.com/nalinbhardwaj/curdleproofs.pie/blob/087fa9b6b597ee3342d43cfde2ab5ea871dec644/curdleproofs/curdleproofs/grand_prod.py#L195
https://github.com/nalinbhardwaj/curdleproofs.pie/blob/087fa9b6b597ee3342d43cfde2ab5ea871dec644/curdleproofs/curdleproofs/grand_prod.py#L206-L207
and IPA proof returns bool for a preparation step
https://github.com/nalinbhardwaj/curdleproofs.pie/blob/087fa9b6b597ee3342d43cfde2ab5ea871dec644/curdleproofs/curdleproofs/ipa.py#L228-L232
and does not call verify on the msm accumulator
https://github.com/nalinbhardwaj/curdleproofs.pie/blob/087fa9b6b597ee3342d43cfde2ab5ea871dec644/curdleproofs/curdleproofs/ipa.py#L260-L262
same_scalar_proof
Returns bool for an equality check
https://github.com/nalinbhardwaj/curdleproofs.pie/blob/087fa9b6b597ee3342d43cfde2ab5ea871dec644/curdleproofs/curdleproofs/same_scalar.py#L126-L129
same_msm_proof
Returns bool for a preparation step
https://github.com/nalinbhardwaj/curdleproofs.pie/blob/087fa9b6b597ee3342d43cfde2ab5ea871dec644/curdleproofs/curdleproofs/same_msm.py#L218-L221
and does not call verify on the msm accumulator
https://github.com/nalinbhardwaj/curdleproofs.pie/blob/087fa9b6b597ee3342d43cfde2ab5ea871dec644/curdleproofs/curdleproofs/same_msm.py#L247C25-L249

Yeah.... That seems like it needs fixing.


NIOFileSystem: BufferedReader.read(while:) doesn't say if it stopped reading because the condition was met or because or EOF

It's quite hard to hold BufferedReader.read(while:) correctly because when it returns with an empty chunk it's unclear if that's because EOF has been reached or because the condition hit.
For example
let line = try await reader.read(while: { $0 != UInt8(ascii: "\n") })

may return an empty line if \n\n has been hit or if EOF has been hit. I couldn't find anything to let me tell this apart.

Fixed by #2688


cater for POZ sbe errors

Change-Id: I051a6300de534cf270fe48a72d5929843ba61272

You can just do all this upstream.

You can just do all this upstream.

sure will do that, when using upstream code for 1060 ghe noticing strange sdbusplus errors and it works only for this downstream 1060 branch, for now using it for testing, will push to upstream once tested


Multi selections should union within the same unit and intersect across units.

This PR fixes #55. The point selection functions have been broken up into separate single and multi functions. If a multi function is called with an intersect parameter, an index is built on the selection store over the unit field.
The predicate function uses this index to conduct inclusion testing. If we've missed against all selections in the current unit, return false; otherwise keep testing. The materialization function first materializes each unit's selection and then intersects them overall.

Thanks for the comments, @jheer. Changes pushed!

Thanks for the comments @jheer. Changes pushed, and fixed some other bugs in the process too.


Free robux 60 Free robux I want to join groupUpdate github-terms-of-service.md

Free robux 60 I want to join group s

Why:
Closes [issue link]

What's being changed:

Check off the following:

[ ] I have reviewed my changes in staging (look for "Automatically generated comment" and click Modified to view your latest changes).
[ ] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[ ] This pull request impacts the contribution experience

[ ] I have added the 'writer impact' label
[ ] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

Ok now I enter my code how many time more to free robux
On Tue, Mar 15, 2022, 4:10 PM github-actions[bot] @.***>
wrote:

Automatically generated comment ℹ
This comment is automatically generated and will be overwritten every
time changes are committed to this branch.
The table contains an overview of files in the content directory that
have been changed in this pull request. It's provided to make it easy to
review your changes on the staging site. Please note that changes to the
data directory will not show up in this table.
Content directory changes
You may find it useful to copy this table into the pull request summary.
There you can edit it to share links to important articles or changes and
to give a high-level overview of how the changes in your pull request
support the overall goals of the pull request.
Source Preview Production What Changed
content/github/site-policy/github-terms-of-service.md
https://github.com/github/docs/blob/14a5e3dc01aa76551c9599b5e726532b47fb6e39/content/github/site-policy/github-terms-of-service.md
Modified
https://docs-preview-16278-c06dae.eastus.azurecontainer.io/github/site-policy/github-terms-of-service
Original
https://docs.github.com/github/site-policy/github-terms-of-service
—
Reply to this email directly, view it on GitHub
https://github.com/github/docs/pull/16278#issuecomment-1067857701, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AYHN6B3OKGKDUKALZY4CQ3DVABVZHANCNFSM5QYKIFDQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>


Moving to strict padding

Fixes #85. This solves several things:

Simplifies all Vega specs to eliminate special padding logic

Prompted the use of the new width and height signals so all pan/zoom axes are simpler now

Biggest one: we were rendering Vega specs twice. Once to get the padding
to use for fixing up the width and height, then again for the final render.
With strict mode this is no longer needed, removing some hacky code.

I assume this PR doesn't affect the look of the current examples, just internal logic, right?
If that's the case, then LGTM.

That is true. The only change is that things are tighter now in general since there is no guessing or overestimation about padding size to make sure things fit. I'm relatively confident there are no regressions - I clicked through each of the examples and they looked good.


Ignore register type genericObjects in ListWebhooks

https://github.com/rancher/rancher/issues/7236

All of the skipped genericObjects in the issue description are of type register
If convertToWebhookGenericObject is called on them, due to no resourceFields an error of "Bad driver" is returned. So skipping these genericObjects

Can you also update the error messages that say "Skipping webhook %#v ..." so that they only log the id of the object they are skipping?

@cjellick oh, yes I'll update

@cjellick the permission on genericObject.Kind is cr already. So I could assign the kind=webhookReceiver without changes to cattle.

Adding a test

Working on the test

@cjellick Changed the log warning message

LGTM


[x] Branch starts with either fix/ or feature/ (e.g. fix/signin-issue)
[ ] All new and existing tests pass.

Type of Change

[x] Small bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would change existing functionality)

Checklist:

[ ] Tested changes locally.
[ ] Closes currently open issue (replace XXXX with an issue no): Closes #XXXX

Description
Fixes issue of button being a descendent of button

Tests are failing, even on the master branch though.

Thanks 🎉


Online prediction with BigQuery ML: FailedPrecondition: 400 Model  is not exportable from BigQueryML.

Expected Behavior
To run the tutorial successfully, and the step "model.deploy(endpoint=endpoint)" to actually deploy the model to the newly created endpoint
Actual Behavior
This error happens:
---------------------------------------------------------------------------
_InactiveRpcError                         Traceback (most recent call last)
/opt/conda/lib/python3.7/site-packages/google/api_core/grpc_helpers.py in error_remapped_callable(*args, **kwargs)
     56         try:
---> 57             return callable_(*args, **kwargs)
     58         except grpc.RpcError as exc:

/opt/conda/lib/python3.7/site-packages/grpc/_channel.py in __call__(self, request, timeout, metadata, credentials, wait_for_ready, compression)
    945                                       wait_for_ready, compression)
--> 946         return _end_unary_response_blocking(state, call, False, None)
    947

/opt/conda/lib/python3.7/site-packages/grpc/_channel.py in _end_unary_response_blocking(state, call, with_call, deadline)
    848     else:
--> 849         raise _InactiveRpcError(state)
    850

_InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
	status = StatusCode.FAILED_PRECONDITION
	details = "Model projects/<some_number>/locations/europe-west2/models/plans_copy_very_dumb_model@2 is not exportable from BigQueryML."
	debug_error_string = "UNKNOWN:Error received from peer ipv4:<IP_ADDRESS>:443 {created_time:"2022-11-22T17:20:11.595548603+00:00", grpc_status:9, grpc_message:"Model projects/<some_number>/locations/europe-west2/models/plans_copy_very_dumb_model@2 is not exportable from BigQueryML."}"
>

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

FailedPrecondition                        Traceback (most recent call last)
/tmp/ipykernel_1/3081084994.py in <module>
      1 #deploying the model to the endpoint may take 10-15 minutes
----> 2 model.deploy(endpoint=endpoint)

~/.local/lib/python3.7/site-packages/google/cloud/aiplatform/models.py in deploy(self, endpoint, deployed_model_display_name, traffic_percentage, traffic_split, machine_type, min_replica_count, max_replica_count, accelerator_type, accelerator_count, service_account, explanation_metadata, explanation_parameters, metadata, encryption_spec_key_name, network, sync, deploy_request_timeout, autoscaling_target_cpu_utilization, autoscaling_target_accelerator_duty_cycle)
   3316             deploy_request_timeout=deploy_request_timeout,
   3317             autoscaling_target_cpu_utilization=autoscaling_target_cpu_utilization,
-> 3318             autoscaling_target_accelerator_duty_cycle=autoscaling_target_accelerator_duty_cycle,
   3319         )
   3320

~/.local/lib/python3.7/site-packages/google/cloud/aiplatform/base.py in wrapper(*args, **kwargs)
    808                 if self:
    809                     VertexAiResourceNounWithFutureManager.wait(self)
--> 810                 return method(*args, **kwargs)
    811
    812             # callbacks to call within the Future (in same Thread)

~/.local/lib/python3.7/site-packages/google/cloud/aiplatform/models.py in _deploy(self, endpoint, deployed_model_display_name, traffic_percentage, traffic_split, machine_type, min_replica_count, max_replica_count, accelerator_type, accelerator_count, service_account, explanation_metadata, explanation_parameters, metadata, encryption_spec_key_name, network, sync, deploy_request_timeout, autoscaling_target_cpu_utilization, autoscaling_target_accelerator_duty_cycle)
   3489             deploy_request_timeout=deploy_request_timeout,
   3490             autoscaling_target_cpu_utilization=autoscaling_target_cpu_utilization,
-> 3491             autoscaling_target_accelerator_duty_cycle=autoscaling_target_accelerator_duty_cycle,
   3492         )
   3493

~/.local/lib/python3.7/site-packages/google/cloud/aiplatform/models.py in _deploy_call(cls, api_client, endpoint_resource_name, model, endpoint_resource_traffic_split, network, deployed_model_display_name, traffic_percentage, traffic_split, machine_type, min_replica_count, max_replica_count, accelerator_type, accelerator_count, service_account, explanation_metadata, explanation_parameters, metadata, deploy_request_timeout, autoscaling_target_cpu_utilization, autoscaling_target_accelerator_duty_cycle)
   1232             traffic_split=traffic_split,
   1233             metadata=metadata,
-> 1234             timeout=deploy_request_timeout,
   1235         )
   1236

~/.local/lib/python3.7/site-packages/google/cloud/aiplatform_v1/services/endpoint_service/client.py in deploy_model(self, request, endpoint, deployed_model, traffic_split, retry, timeout, metadata)
   1261             retry=retry,
   1262             timeout=timeout,
-> 1263             metadata=metadata,
   1264         )
   1265

/opt/conda/lib/python3.7/site-packages/google/api_core/gapic_v1/method.py in __call__(self, timeout, retry, *args, **kwargs)
    152             kwargs["metadata"] = metadata
    153
--> 154         return wrapped_func(*args, **kwargs)
    155
    156

/opt/conda/lib/python3.7/site-packages/google/api_core/grpc_helpers.py in error_remapped_callable(*args, **kwargs)
     57             return callable_(*args, **kwargs)
     58         except grpc.RpcError as exc:
---> 59             raise exceptions.from_grpc_error(exc) from exc
     60
     61     return error_remapped_callable

FailedPrecondition: 400 Model projects/<some_number>/locations/europe-west2/models/plans_copy_very_dumb_model@2 is not exportable from BigQueryML.

The region of the Workbench machine is europe-west1.
The BigQuery dataset, the VertexAI model that is created and stored in the registry during the tutorial, and the VertexAI endpoint are in europe-west2
Is it maybe because of region/location mismatches/conflicts?
Steps to Reproduce the Problem

Create a new VertexAI workbench
Follow the tutorial https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/bigquery_ml/bqml-online-prediction.ipynb
When deploying the model to the endpoint, I get the error

Very important note: I cannot follow the original tutorial, because I get an error when creating the model:
NotFound: 404 POST https://bigquery.googleapis.com/bigquery/v2/projects/<some_name>/jobs?prettyPrint=false: Not found: Dataset <some_name>:ga4_churnprediction was not found in location US

Because of this, my model is a custom one, very simple:
BQML_MODEL_NAME = f"plans_copy_very_dumb_model"

sql_train_model_bqml = f"""
CREATE OR REPLACE MODEL {BQ_DATASET_NAME}.{BQML_MODEL_NAME}
OPTIONS(
  MODEL_TYPE="LOGISTIC_REG",
  input_label_cols=["id"], -- instead of setting the proper labels as in the tutorial
  model_registry="vertex_ai",
  vertex_ai_model_version_aliases=['logistic_reg', 'experimental']
) AS

SELECT
  *
FROM
  `<some_name>.mongo_atlas_dev.plans_copy` -- instead of fetching data from "bqmlpublic.demo_ga4churnprediction.training_data"
"""

print(sql_train_model_bqml)

run_bq_query(sql_train_model_bqml)

Specifications
Running exclusively on Google Cloud Console. But here's the info I can gather.

Version: Jupyter Labs Version 3.4.8
Platform: Google Cloud Console VertexAI Workbench

I am having the same issue here. Region for the model "us-central1"  and "us-west1" for workbench.

Hm, it's not clear from the original post if TIMESTAMP was used and that the initial goal was for model export, but you are absolutely correct that if TIMESTAMP is used as a column, then it can not be exportable:
https://cloud.google.com/bigquery/docs/exporting-models#limitations
If this is a blocker for you, @WolakT, you could try to use a TRANSFORM clause the transform a TIMESTAMP column before the model uses it for training (and inference), so long as the resulting data type is no longer a TIMESTAMP format.
If you still run into issues or blockers that can't be resolved regarding model export, could you share more details directly with the product team at bqml-feedback[at]google.com?

This notebook is known to be flaky

Notebook was deprecated (migrated to community) and no longer supported.


Option to have subtitles saved

Hi.
Thank you for your great effort to this project.
Is it possible to add an option to have subtitles saved together with the movie file?
This is useful if you want to keep the downloaded file and play it again or if you want to play the file with an external player
Thank you.

Yes, but if I stop the playback and open the file with kodi (not from within elementum) the subtitle is saved next to the video file. This does not happen with elementum. There is not downloading of subtitle taking place. I can see that by pausing the video playback and browsing to the directory where the video file resides.

that is because you open already-downloaded file locally and Kodi can save there subtitles. While you open from Elementum - you stream file to Kodi, like from an internet, so it can't do anything with it, Kodi does not even know when the file is saved.

Ok I see. But when I choose to download a subtitle (while playing video from within elementum), is it put in memory by kodi? Does Kodi stream the subtitle as well? Isn't it stored somewhere even temporarily?

Sorry, I don't know how Kodi treats subtitles files. They are pretty small, so easily can be stored in memory.

duplicate of #137


Only the taker publishes lock to avoid bad UX

As described in https://github.com/itchysats/itchysats/issues/2563 we can run into scenarios where one party publishes lock, but the other party discards the contract setup as failed.
Until we action the solution described in https://github.com/itchysats/itchysats/issues/2563 we could opt for removing lock publication on the maker side, and assume that the taker always publishes lock upon finishing contract setup.
This is to avoid scenarios where the taker is in a situation where the maker published lock, but the taker is not aware of it. This can also happen for the maker, which is a bad UX for the taker as well, because the position will get force closed.
To avoid this problem for now I propose:

Ensure the message order. The taker always sends first, the maker always receives first (except from the ack!)
The taker is the one publishing lock.
We keep the acks in place, the maker sends first, the taker receives first.

If the taker  receive the ack we publish lock and fire and forget the taker's ack as last message.
If the maker receives the ack of the taker (the last message being sent) everything is good.
If the maker does not receive the ack of the taker we still go on but print a warning to know that this position might not get published on chain
If the taker does not receive the ack of the maker we fail the protocol on the taker side and don't publish lock. For the maker this will result in the warning mentioned above and a position that is Open even though it does not go on chain.

There is one more thing to consider: the maker's wallet.
Right now we block used utxo's for some time. If a taker repeatably fails, this will maneuver the maker into a stale position for some time where all the utxo's seem to be locked.
I believe this ticket does not add much more guarantees than we have before and might bring other problems. Hence, I propose to go for https://github.com/itchysats/itchysats/issues/2563 right away.

I believe this ticket does not add much more guarantees than we have before and might bring other problems. Hence, I propose to go for https://github.com/itchysats/itchysats/issues/2563 right away.

I like that, I'll see to push for getting https://github.com/itchysats/itchysats/issues/2563 into one of the next iterations!
@luckysori if you feel different feel free to re-open this ticket!

I like that, I'll see to push for getting #2563 into one of the next iterations! @luckysori if you feel different feel free to re-open this ticket!

I am in favour of going in the direction proposed in #2563, so I'm happy to close this.


Update CloudShell testing process documentation

CloudShell testing process can be found in: https://github.com/Azure/azure-sdk/issues/795


[Bug]: Image URL stops working after I remove default image URL from image widget

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior

Steps To Reproduce

Drag and drop image widget
Paste an image URL
remove the default Image url
Now if I copy paste the existing image URL it stops working

Environment
Production
Version
Cloud

@techbhavin can you please check and tell me what changed here before we start working on it, seems like this is a regression.

@somangshu  I think it's not working because of this condition.

@techbhavin please help me understand, does the variable imageError result in true if the default image is not present?
Also can you check the git blame to see how it worked before?

this change is related to PR  #11247
root cause: imageError is not set again to false when we add again default image.
I will look into this issue

@techbhavin @somangshu As mentioned ImageError is getting reset properly. we need to set it to true on when image URL changes on componentDidUpdate

@somangshu @sbalaji1192 @techbhavin ,
We can also just simply fix this issue using the conditional expression on underlying img tag like this:
L218:
{(this.props.imageUrl || this.props.defaultImageUrl) && (
  <img
    alt={this.props.widgetName}
    onError={this.onImageError}
    onLoad={this.onImageLoad}
    src={this.props.imageUrl || this.props.defaultImageUrl}
    style={{
      display: "none",
    }}
  />
)}

@wmdev0808 That will not solve the issue. if there is an error, the img element wouldn't get rendered. because of the condition in L131. The ideal way to fix this is to reset imageError, when props change.

@wmdev0808 That will not solve the issue. if there is an error, the img element wouldn't get rendered. because of the condition in L131. The ideal way to fix this is to reset imageError, when props change.

@sbalaji1192 , you're right. I agree with your way, thank you


Foundryup should be configured using bash_profile/zprofile for macOS/Darwin

Component
Foundryup
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
No response
What command(s) is the bug in?
No response
Operating System
No response
Describe the bug
macOS/darwin treats every shell as its a login shell. i.e. any time terminal is invoked it is as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile or ~/.zprofile

Not entirely sure what this issue is about, but is this relevant when we rewrite in Rust? If not, we should close this

Not entirely sure what this issue is about, but is this relevant when we rewrite in Rust? If not, we should close this

macOS uses ~/.bash_profile for shell directives/etc. It does not use ~/.bashrc which is the correct way and the way that foundryup does it.

# Only add foundryup if it isn't already in PATH.
if [[ ":$PATH:" != *":${FOUNDRY_BIN_DIR}:"* ]]; then
  # if macOS use bash_profile
	if [[ $PLATFORM == 'darwin'* ]]; then
		echo >>"$HOME"/.bash_profile && echo "export PATH=\"\$PATH:$FOUNDRY_BIN_DIR\"" >>"$HOME"/.bash_profile
	fi
# use bashrc everywhere else
	# Add the foundryup directory to the path and ensure the old PATH variables remain.
	echo >>"$PROFILE" && echo "export PATH=\"\$PATH:$FOUNDRY_BIN_DIR\"" >>"$PROFILE"
fi

Close-able? @mds1

macOS defaults to zsh now so I think this is outdated. Closing, but @sambacha lmk if I'm wrong here and this needs to be reopened

Foundry does not persist on zsh


CNV-29304: Make more space for VirtualMachine details in step 3

📝 Description
Fixes:
https://issues.redhat.com/browse/CNV-29304
Make more space for "VirtualMachine details" - step 3 of VM creation from InstanceTypes (Catalog > InstanceTypes tab), especially for a long VM name and small screens.
🎥 Screenshots
Before:

After:

@avivtur @metalice @pcbailey @upalatucci @vojtechszocs please review

It's hard to tell since the text in the field is different, but it looks like the implementation is wider than the mockup provided by Yifat. Could you please take another screenshot with the text from her example 'my-awesome-virtual-machine' so we can compare?

/retest

It's hard to tell since the text in the field is different, but it looks like the implementation is wider than the mockup provided by Yifat. Could you please take another screenshot with the text from her example 'my-awesome-virtual-machine' so we can compare?

After:


Stabilize service.instance.id  since it's populated in stable OTel SDKs

Related: https://github.com/open-telemetry/semantic-conventions/pull/1423/files#r1802240167

do you know which stable SDKs it's populated by? I only know that in Java it's still in the incubator module: ServiceInstanceIdResourceProvider.java

@jsuereth mentioned some, but I forgot which ones in partucular

Erlang has been populating it for some time.


Access Drone frames

I'm trying to view the drone frames using rviz, but I can't seem to find them. If i run rosrun tf view_frames I get the message "No TF data received". Is there a way to display the drone frames ?

It should be on the topic /tello_node/image_raw


unable to create logfile bug when no logfile is selected

resolved with https://github.com/Team-Controller-NAU/Controller/commit/4d7c77bf14c8d4dd13b1b28a71871441519e0db8


Update version string to a PEP-440 compatible one

Proposed changes in this pull request
setuptools > 66 requires PEP-440 compatible version strings.
The version string is converted from git describe format (<version>-<num>-<sha>) to <version>.dev<num>+<sha> format.
Addresses the issue #51.
Type (put an x where ever applicable)

[x] Bug fix: Link to the issue
[x] Feature (Non-breaking change)
[ ] Feature (Breaking change)
[ ] Documentation Improvement
[ ] Other

Checklist
Please put an x against the checkboxes. Write a small comment explaining if its N/A (not applicable)

[X] All the tests are passing after the introduction of new changes.
[N/A] Added tests respective to the part of code I have written.
[N/A] Added proper documentation where ever applicable (in code and README.md).

Optional extra information

Closed in favor of #53


DRILL-4794: Fix a premature exit of the outer loop during pruning.

@jinfengni could you pls review this small patch ?  The bug was caused by the fact that there was an extraneous 'break' statement that exited from the outer loop (my intent was to only exit from an inner loop when isSinglePartition=false ... but in this case there was no inner loop).

+1
LGTM


Fix issue when removing the tags of a profile

Validate required data to update/remove tags.

I tested the solution suggested by @wunc and it works. I have created a FormRequest class to validate the data coming in the AJAX request, currently doing some testing.


Inline editing is still enabled even the edit action is disabled

When I disable editing of a resource, but I have the cancan ability to update it, inline editing is still enabled.
This feels like it is designed this way, however, it is quite tedious to disable editing on all fields one at a time.
Could we maybe have an option to make all the fields readonly?

@thedumbtechguy i'm not able to reproduce this - inline editing is disabled if there are no update ability defined for some role/resource. Can you provide more details about how to reproduce this issue?

@omohokcoj the issue described is related more to the UI customization than abilities.
Let's say, I have a resource where I have the update ability.
In the settings of a resource, disable the edit action.
The edit button will be removed.
I would expect that one would not be able to edit the fields as well.
However, I still have that option.
This is more of what I would consider an expectation from a user but not necessarily a bug.

@thedumbtechguy oh got it, you're right - inline edit still exists even if you remove the 'edit' action.
But actually that's a desired behavior - the 'edit' action might be removed or replaced it with some custom 'update' form action - in this case inline edit configured via column settings might be still useful.
I'd say we should keep it as is, since instead it should be easy to remove inline edit from tables by using cancan abilities.

I thought as much. It makes sense from the entire design of the tool.


SSL Error while using Ruby 2.3.1

I'm seeing the following error when making any request to the MindBody API using Ruby 2.3.1:
irb(main):028:0> MindBody::Services::ClassService::get_class_schedules
HTTPI::SSLError: SSL_connect returned=1 errno=0 state=unknown state: certificate verify failed
        from /usr/local/bundle/gems/httpi-2.4.2/lib/httpi/adapter/httpclient.rb:28:in `rescue in request'
        from /usr/local/bundle/gems/httpi-2.4.2/lib/httpi/adapter/httpclient.rb:25:in `request'
        from /usr/local/bundle/gems/httpi-2.4.2/lib/httpi.rb:161:in `request'
        from /usr/local/bundle/gems/httpi-2.4.2/lib/httpi.rb:133:in `post'
        from /usr/local/bundle/gems/savon-2.11.1/lib/savon/operation.rb:94:in `block in call_with_logging'
        from /usr/local/bundle/gems/savon-2.11.1/lib/savon/request_logger.rb:12:in `log'
        from /usr/local/bundle/gems/savon-2.11.1/lib/savon/operation.rb:94:in `call_with_logging'
        from /usr/local/bundle/gems/savon-2.11.1/lib/savon/operation.rb:54:in `call'
        from /usr/local/bundle/gems/savon-2.11.1/lib/savon/client.rb:36:in `call'
        from /usr/local/bundle/bundler/gems/mindbody-api-579af18314d2/lib/mindbody-api/client.rb:18:in `call'
        from /usr/local/bundle/bundler/gems/mindbody-api-579af18314d2/lib/mindbody-api/ext/savon_ext.rb:16:in `get_class_schedules'
        from (irb):28
        from /usr/local/bundle/gems/railties-5.0.0/lib/rails/commands/console.rb:65:in `start'
        from /usr/local/bundle/gems/railties-5.0.0/lib/rails/commands/console_helper.rb:9:in `start'
        from /usr/local/bundle/gems/railties-5.0.0/lib/rails/commands/commands_tasks.rb:78:in `console'
        from /usr/local/bundle/gems/railties-5.0.0/lib/rails/commands/commands_tasks.rb:49:in `run_command!'
        from /usr/local/bundle/gems/railties-5.0.0/lib/rails/commands.rb:18:in `<top (required)>'
        from bin/rails:9:in `require'
        from bin/rails:9:in `<main>'

Has anyone else seen this issue? I'd be happy to provide any additional information that might be useful.

The problem was on my side. My Docker container was missing libssl-dev.


Bugfix/additional deps electron

this is the only way i could come up with, without having to change the parent seed, at build there is no reference to the additional packages. At least there is a note how to get the packages to be included in the build now, and its at the advanced-seed config and project level. I think its a little cleaner solution than having to remember to update the build task with each library.

Nicely done @Kaffiend thank you 👍


Specify input path to CSV

Hi, I was wondering if there is a way to specify the path of the CSV as an input to the JAR.
Thanks,

So you mean do dynamically update the RML file?

@pheyvaer I mean to pass the parent path.
For example: java -jar mapper.jar --parentpath /opt/data.
and the location of the RML is: /opt/data/myrml.ttl

And how does that relate to the CSV file?

@pheyvaer ops! I mean the location of the CSV file.
So for example if the CSV file is located in /opt/data/mydata.csv and the mapping file  mydata.csv as the rml:source.
From my understanding, I have to be in /opt/data to generate the data in RDF, right?
My question is that if there is a way to specify the home or parent path of the CSV file, something like this:
java -jar mapper.jar --inputparentpath /opt/data -m /opt/data/myrml.ttl

You have the option to use the full path in rml:source so instead of saying rml:source "mydata.csv", you can have rml:source "/opt/data/mydata.csv". In the latter case you don't have to be in the folder /opt/data.

@pheyvaer Thanks for the clarification


Route::name() Laravel 5.5~5.7

Hi,
When using the "Route::name()" facade in Laravel 5.5, in PHPStorm it gets as "Required parameter $routes missing", whereas with the version of Laravel 5.7 this does not happen.
What I noticed is that in the _ide_helpder.php file, in version 5.5 "Route name (string $value)" is already used in 5.7 "RouteRegistrar name (string $value)".
Would you have any way to adjust that?
Laravel 5.5

_ide_helper.php

Laravel 5.7

_ide_helper.php

any news for 5.5? anyone else with this problem?

Also having this issue with Laravel 5.5 in PHPSTORM. My entire routes file is highlighted yellow.
I think it's something to do with the groups, like domain, middleware, prefix. Single routes (outside groups) seem unaffected.

I'm on Laravel 5.5 and I have the same issue.
Required parameter '$routes' missing.

I used this:
use Illuminate\Support\Facades\Route;

Route::prefix('/')->group(function (){
    Route::get('/', function () {
        return view('welcome');
    });

    Route::get('/about',function (){
        return view('about');
    });
},'');

I can't quickly figure out on what end this was fixed; it works for me in L7 without errors:

(it would be shown underlined if it wouldn't be recognized).
I could assume this was rather fixed in laravel with some phpdoc change.
@barryvdh if my theory is correct that this was fixed in Laravel, no one is going back to L5.5 to fix this. OTOH it works in the current version of Laravel, I vote for closing this :}


TypeScript decorators for defining Polymer elements

This adds @customElement(), @property(), @observe(), @query(), and @queryAll() decorator factories which let authors define elements with TypeScript classes using class properties.
@property and @observe work by writing to a private configuration property and defining a static 'config' getter that returns that property for Polymer.
@query and @queryAll are intended to replace $ and $$ in a way that's somewhat type-safe: by defining a field decorated with @query and with the right type annotation, TypeScript will know the return type of the query, eliminating the need for casts.
@customElement simply defines the class, but it also sets is for use by Polymer.
I added a test of a compiled TypeScript element. The dependency loading of the test isn't great, but brings relatively little tooling dependencies, it uses

Example class:
import {customElement, property, query, queryAll, observe} from '../polymer/typescript/decorators.js';

@customElement('test-element')
class TestElement extends Polymer.Element {

  @property({notify: true})
  foo: number = 42;

  @property({notify: true})
  bar: string = 'yes';

  @query('h1')
  header: HTMLHeadingElement;

  @queryAll('input')
  allInputs: HTMLInputElement[];

  @observe('foo')
  private _fooChanged(newValue: number) {
    console.log(`foo is now: ${newValue}`);
  }

  @observe(['foo', 'bar'])
  private _fooBarChanged(newFoo: number, newBar: string) {
    console.log(`foo is now: ${newFoo}, bar is now ${newBar}`);
  }

}

Justin, do you think the decorators could be 'blobbed' into assemble-able nodes containing state, through the location object and a merge sort?
I have been working on a composition strategy using history, and it seems like this would be pretty cool to use
Thanks in advance. Have always admired your work
Sincerely,
Jason
Sent from my iPhone

On Sep 14, 2016, at 1:56 AM, Justin Fagnani<EMAIL_ADDRESS>wrote:
This adds @customElement(), @property(), @observe(), @query(), and @queryAll decorator factories which let authors define elements with TypeScript classes using class properties.
@property and @observe work by writing to a private configuration property and defining a static 'config' getter that returns that property for Polymer.
@query and @queryAll are intended to replace $ and $$ in a way that's somewhat type-safe: by defining a field decorated with @query and with the right type annotation, TypeScript will know the return type of the query, eliminating the need for casts.
@customElement simply registers the class, but it sets is for use by Polymer.
I added a test of a compiled TypeScript element. The dependency loading of the test isn't great, but brings relatively little tooling dependencies, it uses
You can view, comment on, or merge this pull request online at:
https://github.com/Polymer/polymer/pull/3954
Commit Summary
TypeScript decorators for defining Polymer elements
Add typescript test to runner.html
File Changes
M bower.json (3)
A custom_typings/dom.d.ts (11)
M package.json (10)
A src/typescript/decorators.d.ts (54)
A src/typescript/decorators.js (104)
A src/typescript/decorators.ts (125)
A src/typescript/polymer.d.ts (89)
M test/runner.html (3)
A test/unit/typescript/decorators.d.ts (0)
A test/unit/typescript/decorators.html (49)
A test/unit/typescript/decorators.js (57)
A test/unit/typescript/decorators.ts (78)
A test/unit/typescript/test-element.d.ts (11)
A test/unit/typescript/test-element.html (9)
A test/unit/typescript/test-element.js (72)
A test/unit/typescript/test-element.ts (45)
A tsconfig.json (23)
Patch Links:
https://github.com/Polymer/polymer/pull/3954.patch
https://github.com/Polymer/polymer/pull/3954.diff
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@jfrazzano can you describe what you mean a little more? I'm not sure how the location object and merge sort fit into the story here.
These decorators are simply an alternate way to declare the data that would be in the static config getter, so that instead of:
class A extends Polymer.Element {
  static get is() { return 'a-element'; }
  static get config() { return {
    properties: {
      'foo': String,
    },
    observers: ['_fooChanged(foo)'],
  }};

  _fooChanged(newFoo) { ... }
}
customElements.define('a-element', A);

You write:
@customElement('a-element')
class A extends Polymer.Element {
  @property()
  foo: string;

  @observe('foo')
  _fooChanged(newFoo) { ... }
}

@justinFagani
Am building a large education app, state of user on each use is important, my design focuses on a few small elements that use utf symbols
A dynamic custom form/drop down/context menu that is re-re sugared and case switched on use
This elem is bound often as a searchable dropdown to a composed input that sometimes will load as many as 1000 options--the ui is composed of moving panels and widgets, all composed from the input as text area read only, the menu, text, a dynamic grid, and a header with again utf symbols to replace buttons arrows menu icons tool gears etc
Data is managed by a prototype data manager which is then set on a dataManager behavior as a single instance of shared through the behavior
Views, are handled by a dashboard object which is a map of all the ui's composed based on prototypes for user types and sub classes of sub object
Titles and labels are pulled from global "propertyName" to "label" and "label" to "property" name functions all defendant on camel case;
General API components take the top level name of the user type and role (student profiles) for example and take a view specific identifier from the view type (inputs, review, charts and data, analysis etc).
Each view is not determined by a natural link path but rather by the user actions, a compiled set of data to beat help kids learn, and data/use records of user specific API preferences.
This meant needing a way to carry state and sugar, or just really archived history into the app every re-entry
We were running about 120,000 records with a 1.5 second load, all new additions and any measuring on window size or device change had to be carefully done and passed to children and js objects to maintain the speed.
We have been playing with building a routing semantic that reflects this data, and the release of the 8/30 document by w3 made our desire to find a way to hold state outside of the polymer compositions and child to parent Dom assembly paramount
In first run native tests we crawled or just stopped
It's been 18 months of work so we decided to get creative and use the 650k or so in each location/nav state object to hide our sugar  and state
If each view is state object only recording the most recent ui change, than a shared master worker that creates more workers to reassemble the composed Dom data can work at any quiet time off thread to assemble state, send it to db store it in indexed database and construct handle forward looking architecture etc.
It's complicated, for sure, and was an adopted plan only as a result of the wait till connected  (not sure what happens when disconnected--if you fall back into the shadow do you have to start again?we are testing that tomorrow)
At any rate out thinking was to  use blobs to try and circumvent some restrictions, and give us the ability to manage our own composition based on data only we know and which is user and user state specific.
If the static methods can be filled dynamically via typed script, well... We don't lose all the work, and we have a cool, kinda interesting use case for the undefined stateObject API.
No rules can sometimes be the best rules
I still am nautilus on no camel case properties.
Anyway, Thanks for asking and I am sorry I went on so long, but I have been really into the possibilities of polymer since I found it like 16 months ago.  I literally learned to code because of it, and the possibilities it offered which three years of hired developers could not. All we ever heard was "that can't be done".
Now, it seems more like anything can be done and learned which is more or less what we have been teaching our kids at our center the last ten years.
I don't want to fail them, and I sure as heck am not letting a little spec make that so
Again, I appreciate all everyone on this project has done.  I cannot imagine the frustration you guys must feel as other parties refuse to play nice on the specs.
Thanks
Jason
Sent from my iPhone

On Sep 14, 2016, at 11:57 AM, Justin Fagnani<EMAIL_ADDRESS>wrote:
@jfrazzano can you describe what you mean a little more? I'm not sure how the location object and merge sort fit into the story here.
These decorators are simply an alternate way to declare the data that would be in the static config getter, so that instead of:
class A extends Polymer.Element {
static get is() { return 'a-element'; }
static get config() { return {
properties: {
'foo': String,
},
observers: ['_fooChanged(foo)'],
}};
_fooChanged(newFoo) { ... }
}
customElements.define('a-element', A);
You write:
@customElement('a-element')
class A extends Polymer.Element {
@property()
foo: string;
@observe('foo')
_fooChanged(newFoo) { ... }
}
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@jfrazzano thanks for the enthusiastic endorsement!
I'm not sure I totally follow you though! It kinda sounds like you're talking about a very dynamic element lifecycle? Maybe?

Just trying to reuse elements in repeaters change their appearance and some functionality based on user responses and the scope the user is currently in
A silly example is our call center ui.
I like a searchable field with a dropdown and an icon that chamges to globe for perfect match plus for close ? Mark for uncertain and a red x for a pattern matching break
Now if view one of the call intake asks are you a returning caller in a current service
A lot of calculation and preparation can be done before the animated page turns
If those elements (the drop down with its specific data, filtered and sorted from choice one) can't be accessed we lose the speed gain and background responsiveness.
I guess a lot is doable if you separate the data from the element and move more into the tiered js CSS HTML world
But we started parsing our own CSS strings from the style text string, faster and easier than CSS
Won't leak and needs not application save a second parse by polymer or chrome. In essence taking the data as the view made the CSS and repeat updates way smoother
It's what you guys do, and it is conflict free.
And from my perspective (new code junkie) it's way easier than leaking selectors, etc and can be done while changing attributes or making the related data changes
But our project in house.
We set the rules of use, as far as that goes. What you guys do is impossible, in comparison.
Really, your work and the compromises you have had to make silently, without appreciation
You guys are the publics code defenders. More people should realize it.
This is tough work and you do a great job
Thank u.
Sincerely
Jason.
Sent from my iPhone

On Sep 14, 2016, at 1:53 PM, Peter Burns<EMAIL_ADDRESS>wrote:
@jfrazzano thanks for the enthusiastic endorsement!
I'm not sure I totally follow you though! It kinda sounds like you're talking about a very dynamic element lifecycle? Maybe?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@justinfagnani really cool stuff. this should in theory allow for a really, really slick angular2 integration with polymer elements - we should chat about how we're using decorators and TS with metadata 👍

This is just a curiosity: how does type script interact with wai-aria property objects roles etc? is there a cross over of roles.  No reason to thing there is.  Just curious.

On Sep 15, 2016, at 5:08 AM, Rob Wormald<EMAIL_ADDRESS>wrote:
@robwormald commented on this pull request.
In custom_typings/dom.d.ts https://github.com/Polymer/polymer/pull/3954#pullrequestreview-121549:

@@ -0,0 +1,11 @@
+declare interface Window {

customElements: CustomElementRegistry;
you might see about getting these added to typescript's lib files, so a user could do something like in their tsconfig

{ "types" : [ "es2015", "dom", "customElements" }
cc @DanielRosenwasser https://github.com/DanielRosenwasser
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/Polymer/polymer/pull/3954#pullrequestreview-121549, or mute the thread https://github.com/notifications/unsubscribe-auth/AHxnvqF0GLOG6FQj6TXgzGriUZHfNuJMks5qqQsXgaJpZM4J8bJz.

@robwormald thanks, I'd love to talk about decorators and integration!

It will be significantly more difficult to slide meta-data in now, I was working through the element factories I had used and their meta-data behavior; if the elements can’t become elements until they are “connected”, its a challenge;  The one good thing is that once the element is registered it need not be registered again.
It could be attached pulled, and reused.
But the aria spec says the elem can’t change roles.  Does role approximate type? Is the native input, which we transform and which has historically been a chimera, violate the spec? And is that why apple won’t use is? It could be changed as a second script could be “linked” to the document.  The link though covers that eventuality, as “links are self explanatory based in the text…”  Whatever the text is that is the link role…
Interface is the word I had originally chosen too, but its a tricky one as I go through spec requirements, it almost eliminates any semantic state data.
Sort of a tough call on how to move things.  Definitely can see the difficulties.
Sincerely,
Jason

On Sep 15, 2016, at 6:46 AM, Justin Fagnani<EMAIL_ADDRESS>wrote:
@justinfagnani commented on this pull request.
In test/unit/typescript/decorators.html https://github.com/Polymer/polymer/pull/3954:

<!--
</li>

 This test uses IMD for simplicity and less tools, but browserify,

 webpack, or rollup could probably be used relatively easily to build a

 single JS bundle

-->

How is the type accessed? Access to the registry cache to the author agent, particularly of an author of a non-application role widget could lesson some of the typing weight.  If the author agent is in control of his state and role and has access to the registry cross browser, well— the onus should shift,  and not leak back.

On Sep 15, 2016, at 4:34 PM, Zhengbo Li<EMAIL_ADDRESS>wrote:
@zhengbli commented on this pull request.
In custom_typings/dom.d.ts https://github.com/Polymer/polymer/pull/3954:

@@ -0,0 +1,11 @@
+declare interface Window {

customElements: CustomElementRegistry;
I agree, this looks like a reasonable addition.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/Polymer/polymer/pull/3954, or mute the thread https://github.com/notifications/unsubscribe-auth/AHxnvvFJHsBnaYQxAQIWBApPvrCFDYVnks5qqavRgaJpZM4J8bJz.

I am asking if a descriptor wouldn’t be helpful in meeting standard, upholding a dedication to semantic web and user state, all while letting the person running the app, handle the details. Since custom elements are hanging around till connect, so like three plus call backs why not do it there.

On Sep 15, 2016, at 4:34 PM, Zhengbo Li<EMAIL_ADDRESS>wrote:
@zhengbli commented on this pull request.
In custom_typings/dom.d.ts https://github.com/Polymer/polymer/pull/3954:

@@ -0,0 +1,11 @@
+declare interface Window {

customElements: CustomElementRegistry;
I agree, this looks like a reasonable addition.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/Polymer/polymer/pull/3954, or mute the thread https://github.com/notifications/unsubscribe-auth/AHxnvvFJHsBnaYQxAQIWBApPvrCFDYVnks5qqavRgaJpZM4J8bJz.

@jfrazzano your discussion seems to be more about Polymer and HTML elements in general, rather than about this PR. Maybe the<EMAIL_ADDRESS>list would be a better venue for this, and you might find some people interested in picking up the thread with you. Let's try to keep the comments here on-topic. Thanks!

the type had spec specific meaning, to include it off thread, is.. well.. it’s relevant, as silent inclusion represents acceptance in many venues and becomes an avenue for later issues.  But, I said what I had to say.  I just practiced enough law in the last 20 years to know silence is anything but golding an international disability standards.

On Sep 15, 2016, at 4:43 PM, Justin Fagnani<EMAIL_ADDRESS>wrote:
@jfrazzano https://github.com/jfrazzano your discussion seems to be more about Polymer and HTML elements in general, rather than about this PR. Maybe the<EMAIL_ADDRESS><EMAIL_ADDRESS>list would be a better venue for this, and you might find some people interested in picking up the thread with you. Let's try to keep the comments here on-topic. Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/Polymer/polymer/pull/3954#issuecomment-247449705, or mute the thread https://github.com/notifications/unsubscribe-auth/AHxnvkyrXE0O1kGFvxhtRSabBqTjOGnjks5qqa3mgaJpZM4J8bJz.

We need to discuss super.connectedCallback(); before this merge I think?
https://github.com/Polymer/polymer/tree/2.0-preview#20-es6-class-based-syntax

example: https://github.com/gertcuykens/hello-world/blob/2.x/hello-world.html

Update README
https://goo.gl/JBljdR

We can soon drop the declarations of shadow dom and custom elements APIs here, as they've landed upstream at https://github.com/Microsoft/TSJS-lib-generator/pull/151 and https://github.com/Microsoft/TSJS-lib-generator/pull/150

You can drop the custom typings now (dom.d.ts) as they have landed in stable.
You can also make all your decorator factories return void functions rather than any.
A suggestion for you, too, is to add a computed decorator:
@computed
myComputedProperty(foo, bar) {

Where the actual computed string is produced using the method's parameters or by passing them in (@computed("foo,bar")).
Reason being, we maintain strong typing for a computed property then, whereas this would result in some weakness:
@property({ type: Boolean, computed: '_computeMyComputedProperty(foo, bar)' })
public myComputedProperty: boolean;

Because typescript wouldn't know that _computeMyComputedProperty returning anything but a boolean is an error...

With 2.0 RC now released is there plans to release typescript support anytime soon?

Note that typescript will always be supported in the sense of if you know what you are doing you can use this PR as a example and make it work yourself. But it's the whole amd modeling / requirejs part needed to make this work that make it so complex that everybody else in the polymer team would not even touch typescript. My guess is they are all waiting for es6 modules to come out in browsers before one would jump on the typescript boat. For me browser vendors are keeping typescript hostage if they don't implement modules.

An update on this PR: Now that 2.0 is in a more final state and we have better support in the Analyzer, I'm working on a .d.ts generator for Polymer packages and have some initial results for the core library here: https://github.com/Polymer/polymer/pull/4377/files
I'll be able to get back to the generator in a week or so.
As for the decorators, they don't need to change much, but my current thinking is to put them into a separate repo, since they're not required to use Polymer 2.0 and decorators are still non-standard, with TypeScript's version not aligned with the latest TC39 proposal.

Separate polymer-decorators also fine for me, just try your best to convince your colleagues typescript is more important to make web applications then they think it is :P I can't even image writing plain javascript anymore without a compiler telling me nope bad idea all the time. Plain javascript is almost the same as giving me a uglified minification file and then ask me to change a property in it... You just don't use plain javascript anymore like you don't use assembler anymore.

TypeScript's version not aligned with the latest TC39 proposal.

Wait what? And what did Microsoft had to say about that? As far as I can tell they look the same? Maybe some details or something TC39 changed? No doubt Typescript will adapt to it for sure I mean its their number one priority to be standard compatible

Any update on this?

@lanthaler I'll get back to this after the Polymer Summit

Awesome. That's great news!

Closing in favor of https://github.com/Polymer/polymer-decorators and a future PR that will be generated from https://github.com/Polymer/gen-typescript-declarations