can you please provide supoort for maven?

i am using maven to vreate my android app,many time the code ontained in the public pc,we need to use command to create app,so can you add maven support?
https://github.com/wsdjeg/maven-android-sdk-deployer
this project help me add the sdk into ~/.m2/

I don't understand what you're asking. This repo is not an SDK, nor are we going to support building in maven and gradle simultaneously.

i know ,this repo the android app for github,i just want to use mvn package android:deploy install it into my phone
maven-android-sdk-deployer is a project for android-sdk,not for this

fork it and do it yourself? We don't use maven

with the help of https://github.com/wsdjeg/maven-android-sdk-deployer
i can use this dependency
<dependency>
  <groupId>android</groupId>
  <artifactId>android</artifactId>
  <version>x.y.z</version>
  <scope>provided</scope>
</dependency>

i have forked it,and now i am just try to do it

I'm not sure what you need from us still

i just don't know how to add dependency of githun-sdk,i have search it in maven center repo,but there is no dependency for github-sdk

We use this SDK now: https://github.com/gitskarios/GithubAndroidSdk

i also have forked ,and try to add pom.xml,here is my fork,https://github.com/wsdjeg/GithubAndroidSdk/blob/master/pom.xml
should i  change the <packaging>apk</packaging>to<packaging>jar</packaging>

great i think i have got it

@wsdjeg Instead of mvn package android:deploy you can use ./gradlew app:installDebug to install this app on your phone
The github-sdk can be found in the jcenter maven repository as com.github.alorma:github-sdk:1.2.0
(http://jcenter.bintray.com/com/github/alorma/github-sdk/)
For more information about why this app is build with gradle and not with maven, have a look at #602

@larsgrefer thank you for your reply
i will have a try with gradle

i have download the gradle from the it's web,and add this to my zshrc,how could i build this app
export GRADLE_HOME="$HOME/others/gradle-2.8"
export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$GRADLE_HOME/bin:$PATH"

it does not work for me
stop here for an hour

Configuring > 3/3 projects > Resolving dependencies ':app:_debugCompile'

@wsdjeg you don't have to download gradle by hand or set the GRADLE_HOME variable, just use the gradlew script provided in this repository: ./gradlew app:installDebug

i know ,i just use this command ./gradlew app:installDebug,but it stop here for a long time


Added FromIdentity property to incidents generated for change of name or date of birth

Context
We need to store whether an incident was created by identity or not to decide which email content to send to the user/teacher in CRM
Changes proposed in this pull request
Add support for dfeta_FromIdentity field in incident in CRM
Guidance to review
N/A
Checklist

[ ] Attach to Trello card
[ ] Rebased master
[ ] Cleaned commit history
[ ] Tested by running locally

 Update automated email content for DQT name & DOB changes


[init] Move client backup poller init to be directly called by init.cc

This is likely tech debt, but one that we'll pay back fairly shortly - and it'll allow removal of the plugin system a little earlier.

That's the idea yeah... it lets us remove it from the client_channel plugin (which allows us to more quickly remove plugins), and we're ultimately going to drop this code, hopefully before years end.


Docs: Add a section detailing which data sources are currently supported

When considering an OLAP solution for presentation to end users a key consideration is which data sources can be served.

The ability to connect EuclidOLAP to other data sources is going to be implemented in the future, because my own energy is limited, so I can only do higher priority tasks now.
Thank you for the advice


Add Funnel Charts

Requesting to add funnel charts options...

on board with the request! I cannot read nor update the funnel charts.


UPS attempted to ruin my batteries ...

My UPS plus has f/w 9.
The control script I use is Frtz13's fanShutDownUPS.py. In addition to its fan control and HA reporting it observes the same UPS functions as the GeeekPi scripts with extra's, i.e. when AC fails, it writes messages to the syslog about the battery voltage dropping and at a margin of 200 mV above the protection voltage it sets the countdown timer 0x18 register to 60 and then sends a shutdown command to the Pi.
I have had the protection voltage at 3200 mV for some time now and have run down the batteries till automatic shutdown by the UPS itself (no control script running) and reconnected AC a few times to have the UPS 'learn' the battery fully discharged value. This has been successful as I described elsewhere.
In order to find out the influence of the battery sampling interval (period) on e.g. the estimated battery capacity and charging/discharging behaviour of the UPS, I had very recently set the sampling interval to 600 instead of the default 2 minutes.
I can't say if this is to blame for the mishap that happened last night after disconnecting AC.
Anyway, according to the syslog last night the control script initiated a shutdown at 3.38 a.m. However the Pi kept running past the shutdown command somehow as can be seen from the syslog until at 4.17 a.m. almost an hour later it 'succumbed'. Of course during those 50 mintes the control script was not running any longer and no entries were made by it in the syslog.
The UPS f/w OTOH has no way of writing to the syslog, so I remain the dark how it judged the situation. The batteries must have been going down much past 3200 mV until the Pi stopped at 4:17 after the Pi had been going about its business for almost another hour as if nothing was the matter. Renewing the HA token and other normal things.
The UPS f/w hadn't cut the power at 3200 mV as it had done in my earlier tests, because in the morning I found them having only 2,5 V or lower. Much below the specified 2,75 V for these cells.
When I reconnected AC in the morning as intended, the Pi didn't start. It just kept making attempts without any result flashing its red and green leds. No HDMI output.
Eventually I had to take out the batteries to find them dangerously empty and recharge them in a separate Nitecore UM-2 charger to some safer level.
No real clue as to why the UPS didn't just cut the power to the Pi as it should after the 60 seconds written to countdown timer register 0x18 by the control script before the shutdown command, nor why the UPS f/w obviously didn't observe the protection voltage of 3200 mV as it did in earlier tests when no control script was running.
Currently this UPS/Pi is running again and batteries are being charged by the UPS. I set the protection voltage higher than before,  to 3500 mV, and the sampling interval had gone back to 2 minutes (apparently automatically after taking out and replacing the batteries).
It was scary to have the batteries so mistreated. They weren't hot when I took them out, but must have taken a hit.

My bad, as they say .... it was at least partially myself to blame ... Sorry for throwing doubt on the UPS in this respect.
I use Frtz13's script, but have made some changes to it and therefore I prefer to merge a new script version by Frtz13 with my version of it by using the Kompare program on my laptop. One could wait for something to go wrong there ...
The script as I had it since Frtz13's last - sweeping - changes crashed just when it needs to do the shutdown, because of a name change. This all is not very important to others. It was easy to correct after I had set the protection voltage high to gain time and restarted the script after it had crashed and not finished properly, which I didn't realize at the time. Running it in Thonny revealed the error.
Anyway .. in the event reported above I did find the batteries in the morning with very low voltage below 3 V. The control script had missed the shutdown, because it crashed and therefore the countdown timer 0x18 and the back-on-AC 0x19 weren't set. The UPS continued to power the Pi and then somehow missed its own checkpoint voltage (fully discharged) from 0x0F-0x10 set at 3200mV, or the batteries drained very quickly and steeply below the 3200mV in the attempts to start the Pi up.
So ... better be careful when editing scripts and maybe not go very low in the fully discharged department (which is somehow learned by the f/w from the protection voltage through discharge cycles) ...
After all, a UPS 's main goal is to safely shut down the load when there is AC failure and start up again after AC comes back. No need to keep the load running without AC for hours, is there? That is a different scenario, aka mobile computing.


Emacs packages update: 2019-08-09

Motivation for this change
Update elpa-packages, melpa-packages, melpa-stable-packages.
Checked with nix-instantiate. Also, works fine with my Emacs setup.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Previous update: https://github.com/NixOS/nixpkgs/pull/62784
cc @rycee (you seem to be interested in Emacs packages updates :slightly_smiling_face: )

@rasendubi Thanks for your PR!
We have recently changed the machinery for generating melpa-packages (see https://github.com/NixOS/nixpkgs/pull/59189).
Please use the new update-melpa script to update Melpa.

Oh, I missed that. I have removed melpa packages from the PR, so it only updates elpa now.

Thanks!


add typed push and get

So that we don't force JSON on the client.

#35 depends on this functionality.


Develop rules for BCO scoring

Commit for first attribute = length of usability domain text.

Criteria
Score

Field length modifier
x1.2

Error Domain exists
+5

Each Parametric object
x1.1

Each reviewer object up to 5
+1

Scoring might look like this (but with a more polished UI instead of text-based):
0---------------1---------------∞
----------------------^                   Your score: 24
Where 0 - 1 is unvalidated territory, and anything above 1 is validated and getting a score.

Possibly break it into two scores: BCO score and FINDability score. FINDability looks for things like resolvable addresses (Chinewoke's idea).

Measurable Attributes

Check for duplicates. For example in intermediate I/O steps, *this idea will be finetuned as some steps may have inputs from a previous step's output
Open Source validation when it comes to resolvable addresses/URLs
Usage metrics*: May not be implementable, but the idea is to gauge how people are interacting with a certain BCO

https://github.com/biocompute-objects/bco_api/issues/330

#328


Error: connect ECONNREFUSED

Hey, you have very good project, but i have some problem, this code will fail in 100% times, when you are not in LOL, then you enter the game.
Seems like session is not rdy to make requests...
Also, just a proposal, will be to trigger client.on('connect', () => {}) even on first start of game)

This is caused because when the process is created the internal server has not yet had time to initialize and is not ready to take requests. This error on connection could be fixed by a loop calling the client and catching any ECONNREFUSED errors similar to what we did with web sockets.
Adding something like this in the authenticate function would prevent said error during startup
return new Promise<Credentials>(function testConnection(resolve, reject) {
    createHttp1Request({ method: 'GET', url: '/process-control/v1/process' }, credentials)
      .then(() => resolve(credentials))
      .catch((err) => {
        if (err.code === 'ECONNREFUSED') {
          setTimeout(testConnection, pollInterval, resolve, reject)
        } else {
          reject(err)
        }
      })
  })

I have no problem creating a PR that adds it if that's a feature @junlarsen would like. My question would be if it's a new connection option or added to awaitConnection


Any value of the Data License except CC0-1.0 makes the conversion fail.

When my cdx file has a top level license of anything but CC0-1.0 I get this error:
Eror copying metadata: Incorrect data license.  Must be CC0-1.0
Not sure what is the purpose.
But if only a single value is allowed why not simply set that value instead of failing the conversion in case the source file has something else.
I am using sbomasm to generate boms and it hardcoded sets CC-BY-1.0
Someone must be doing something wrong here.

For now I have a hack which ignores the input and always sets the (only allowed) output value.

Whatever makes most sense.
All I know is that for me the current process does not work.
The sbomasm utility autonomously and unconditionally adds the CC-BY-1.0 license to the cyclonedx sbom.
And cdx2spdx turns it down as it cannot be used for the spdx version.
(It seems strange to me that the spdx specs require a specific license to be set while the author at the same time has the right to define what it should be. So basically I can decide that my SPDX file is invalid or use the prescribed license. A strange dilemma)
PS:
It is possible for sbomasm to define a license for the assembly but that applies to the content/subject of the sbom whereas I understand that the disputed one is about the sbom file itself.

I can create a PR to change this to a warning.

It is possible for sbomasm to define a license for the assembly but that applies to the content/subject of the sbom whereas I understand that the disputed one is about the sbom file itself.

Correct - the data license field applies to the SBOM itself, not the subject of the SBOM.  There are separate fields in the Package and File for recording the license of the subjects.

HI @flemminglau - just catching up here. Let me make sure I understand the context:
When you say, "my cdx file has a top level license" - what is the definition and purpose of this field in cdx? It seems we are assuming that it is the same as the SPDX Data License field, but I thought I'd first check that assumption is correct and that these fields in both specs are truly corresponding.
By way of background, I'd recommend you read the purpose and intent of the SPDX Data License field, if you haven't already, at https://spdx.github.io/spdx-spec/v2.3/document-creation-information/#62-data-license-field
At the time this was discussed, there was a lot of consideration by the SPDX-legal team as to what, if any, copyright and database rights might cover an SPDX document. These are different rights with different legal frameworks, and in the case of database rights, differences as to jurisdiction.
The choice of CC-0 was to ensure the goal of (S)BOM data (I put the S in parens, b/c when SPDX started back in 2010, we used "BOM" as the term then, ha ha!)  to travel freely through the supply chain and discourage people creating SPDX documents and then trying to sell them. Perhaps this is less of a concern now, but I think the original intent is important to understand as the underpinning of information being exchanged easily through the supply chain is still a goal (aside valid situations where some info may be confidential, which is also fine, but different than making the information itself proprietary).
Hope that additional context helps a bit!

Fixed in #36


FGSEA and EM services can return warnings or diagnostic messages.

Description of new feature
Add fields to the returned Json data from the microservices that carries warnings or diagnostic messages. The express server can then log these messages, warn the user, or send them to Sentry.
I propose that for now the microservices don't directly integrate with Sentry. Instead they send messages back to the express server and it can send them to Sentry if needed.
Reasons for this approach are:

there is no R SDK for Sentry, so it would be difficult to integrate that service with Sentry. (Theoretically it could send a request to Sentry's HTTP API using the R equivalent of curl, but that would be messy.)
Localize the dependency on the Sentry SDK to our javascript code.
It would be strange if the Java service directly contacted Sentry but the R service did not.

Proposal to add a "messages" field to the returned Json from both services. This field would be an array of Message objects of the form...
{
   level: <string, one of "warning", "info", "error" etc...>,
   type: <string, indicates the type of error, eg "non_fininte_ranks">,
   text: <string, freeform text that will be logged>,
   data: { object containing additional data, structure depends on the 'type' field }
}

Motivation for new feature
Its possible for the ranks calculation in the R service to produce non-finite values. These then have to be filtered out before passing the ranks to the FGSEA function. We want to know how often non-finite values are being produced by the ranks calculation to determine if it is a real problem. We don't want to return just an error code from the R service because the network can still be created even if some ranks had to be discarded.
More generally in the future there may be all kinds of warnings or other info produced by the services that could be used in a variety of ways.

@mikekucera, can this be closed?

The only diagnostic info returned at the moment is from the FGSEA ranks calculation. But the capability is now there for the services to return any messages we may need in the future. So yes I think this can be closed and we can open new issues as needed.


new prometheus metrics for number connected clients

It will be cool to have metric with number of connected clients
like as:
dnscollector_clients_total
INFO: 2021/12/24 05:38:54.218184 collector dnstap - <IP_ADDRESS>:51318 - new connection
INFO: 2021/12/24 05:38:54.218221 dnstap processor - initialization...
INFO: 2021/12/24 05:38:54.218834 Subprocessor GeoIP - country database (%!s(uint=1630373273)) loaded (1203001 records)
INFO: 2021/12/24 05:38:54.218961 Subprocessor GeoIP - city database (%!s(uint=1639486540)) loaded (5265672 records)
INFO: 2021/12/24 05:38:54.219099 Subprocessor GeoIP - asn database (%!s(uint=1639486240)) loaded (881682 records)

I am not sure to properly understand your need.
The metric dnscollector_requesters_total Number of clients   is not sufficient ?

sorry, yes, I can use it
thanks


#33: Updated defaults to kafka 0.9

If we know the offset monitor isn't going to work with the default should we add some warning/logging/error out to this effect so consumers know as well?

Maybe also bump default offset monitor version to latest (0.2.1)

In README might link to http://kafka.apache.org/documentation.html#upgrade_9, as it's critical to temporarily set inter.broker.protocol.version=0.8.2.X for a rolling upgrade.

Changing the default seems like a major version bump.

We already did a major version bump when we remove a lot of the default attributes (https://github.com/cerner/cerner_kafka/commit/5674e21e519d65c26b566d108f8f446ec1f115a1).

If we know the offset monitor isn't going to work with the default should we add some warning/logging/error out to this effect so consumers know as well?

Are you referring to the switch to offset storage in kafka? It looks like by default its still zookeeper (doc look for offsets.storage).

Addressed all comments with this, https://github.com/cerner/cerner_kafka/commit/c0955cc46b0384d0bdf0c3b3f0f17404edf7a51b

Added upgrade guide to call out what we changed and was non-passive or what they should look out for, https://github.com/cerner/cerner_kafka/commit/f507c8014874a46acb4f1a15cc2daba9244c0d62

+1

+1

Merging with enough +1s


BUG: batch import HDF5 to Milvus

In #1, we saw that the milvusdm tool can batch import an HDF5 file, but when I tried with the New York Times embedding file, there was a subtle error message saying the file is missing an embedding group. Not sure what that is. The milvusdm import tool says success, but the data is not stored on Milvus.

There is not a lot of documents. The source code for PIPY is https://files.pythonhosted.org/packages/ae/f5/1aed61960edf29887458359557e02631ebb6e6c7197e9d8a026e079a57d2/pymilvusdm-2.0.tar.gz
There is a similar sounding tool https://github.com/zilliztech/milvus-bulkload being updated recently but not sure its maturity.

core/read_data.py:
import h5py
import numpy as np

class ReadData:
    def __init__(self, filepath):
        self.filepath = filepath

    def unit2byte(self, vecs):
        vectors = [vec.tobytes() for vec in vecs]
        return vectors

    def format(self, vecs):
        if vecs.dtype == 'uint8':
            vecs = self.unit2byte(vecs)
        # else:
        #     vecs = vecs.tolist()
        return vecs

    def read_hdf5_data(self):
        try:
            f = h5py.File(self.filepath, 'r')
            keys = list(f.keys())
            if 'embeddings' not in keys:
                raise Exception("Please make sure the file has the 'embeddings' group!")
            if 'ids' in keys:
                if f['ids'].len() != f['embeddings'].len():
                    raise Exception("Please ensure that the length of 'ids' equals that of the 'embeddings'!")
                # print(f['embeddings'][:].dtype == 'uint8')
                vectors = self.format(f['embeddings'][:])
                return vectors, f['ids'][:]
            return f['embeddings'][:], np.array([])
        except Exception as e:
            print(e)
            return "Error with {}".format(e), 400

core/data_to_milvus.py:
from pymilvusdm.core.milvus_client import MilvusIndex
import math
import time
import sys

class DataToMilvus:
    def __init__(self, logger, client):
        self.client = client
        self.logger = logger
        self.batch_size = 100000

    def if_create_collection(self, collection_name, partition_tag):
        try:
            if self.client.has_collection(collection_name):
                if not partition_tag:
                    self.logger.info("There collection:{} exists, and skip it.".format(collection_name))
                    sys.exit(1)
                elif partition_tag and self.client.has_partition(collection_name, partition_tag):
                    self.logger.info("There collection:{} partition:{} exists, and skip it.".format(collection_name, partition_tag))
                    sys.exit(1)
        except Exception as e:
            self.logger.error('Error with: {}'.format(e))
            sys.exit(1)

    def creat_none_partition(self, collection, collection_param, mode, has_collection):
        _continue = True
        if not has_collection:
            self.client.create_collection(collection, collection_param)
        else:
            if mode == 'overwrite':
                self.client.drop_collection(collection)
                while has_collection:
                    has_collection = self.client.has_collection(collection)
                self.client.create_collection(collection, collection_param)
            elif mode == 'skip':
                _continue = False
        return _continue

    def creat_assigned_partition(self, collection, collection_param, mode, partition, has_collection):
        _continue = True
        if not has_collection:
            self.client.create_collection(collection, collection_param)
            self.client.creat_partition(collection, partition)
        else:
            has_partition = self.client.has_partition(collection, partition)
            if not has_partition:
                self.client.creat_partition(collection, partition)
            else:
                if mode == 'overwrite':
                    self.client.drop_partition(collection, partition)
                    while has_partition:
                        has_partition = self.client.has_partition(collection, partition)
                    self.client.creat_partition(collection, partition)
                elif mode == 'skip':
                    _continue = False
        return _continue

    def insert_data(self, vectors, collection, collection_param_1, mode, ids=None, partition=None):
        try:
            data_type = self.client.get_data_type(collection_param_1)
            collection_param = {'collection_name': collection, 'dimension': collection_param_1['dimension'],
                                'index_file_size': collection_param_1['index_file_size'], 'data_type': data_type}
            has_collection = self.client.has_collection(collection)
            if partition:
                _continue = self.creat_assigned_partition(collection, collection_param, mode, partition, has_collection)
            else:
                _continue = self.creat_none_partition(collection, collection_param, mode, has_collection)
            return_ids = []
            if _continue:
                for i in range(math.ceil(len(vectors) / self.batch_size)):
                    _ids = None
                    if ids.size != 0:
                        _ids = ids[i * self.batch_size: (i + 1) * self.batch_size]
                    vector = vectors[i * self.batch_size: (i + 1) * self.batch_size]
                    if not isinstance(vector, list):
                        vector = vector.tolist()
                    status, ids_ = self.client.insert(collection, vector, _ids.tolist(), partition)
                    return_ids += ids_

                if len(vectors) == len(return_ids):
                    self.logger.debug(
                        "Successfuly insert collection: {}/partition: {} , total num: {}".format(
                            collection, partition, len(return_ids)))
                else:
                    raise Exception(
                        "ERROR: The collection: {}/partition: {} data count is not equal!".format(collection,
                                                                                partition))
                    # self.logger.error(
                    #     "ERROR: The collection: {}/partition: {} data count is not equal!".format(collection,
                    #                                                                               partition))
            else:
                self.logger.info(
                    'The collection or partition exist, skip this collection: {}/partition: {} '.format(collection,
                                                                                partition))
            del vectors
            del vector
            return return_ids
        except Exception as e:
            self.logger.error(e)
            sys.exit(2)

Updating to v2.2, the utility has a bulk_upload() function, which requires data to be in JSON (can be in multiple files, possibly in S3). Testing it with some examples. The code runs with no error; it opens a collection, and does the indexing, but it does not upload the data. Also the same result if I give it a wrong file name for the JSON. Something is not working here.


Markov distribution

Issue Description
This issue is related to the need of having a distribution related to a Markov model which can be re-casted as a categorial distribution over the Markov steady state probabilities
What did you expect to see happen?
NA
What did you see instead?
NA
Do you have a suggested fix for the development team?
NA
Please attach the input file(s) that generate this error.  The simpler the input, the faster we can find the issue.

For Change Control Board: Issue Review
This review should occur before any development is performed as a response to this issue.

[x] 1. Is it tagged with a type: defect or improvement?
[x] 2. Is it tagged with a priority: critical, normal or minor?
[x] 3. If it will impact requirements or requirements tests, is it tagged with requirements?
[x] 4. If it is a defect, can it cause wrong results for users? If so an email needs to be sent to the users.
[x] 5. Is a rationale provided? (Such as explaining why the improvement is needed or why current code is wrong.)

For Change Control Board: Issue Closure
This review should occur when the issue is imminently going to be closed.

[x] 1. If the issue is a defect, is the defect fixed?
[x] 2. If the issue is a defect, is the defect tested for in the regression test system?  (If not explain why not.)
[x] 3. If the issue can impact users, has an email to the users group been written (the email should specify if the defect impacts stable or master)?
[x] 4. If the issue is a defect, does it impact the latest stable branch? If yes, is there any issue tagged with stable (create if needed)?
[x] 5. If the issue is being closed without a merge request, has an explanation of why it is being closed been provided?

closure check list passed...new feature


aptly graph specific output filename

can aptly graph specific output filename
just like
aptly graph -fotmat="svg"  -output="/somewhere/aptly-name.svg"

Fixed by https://github.com/smira/aptly/commit/f3bcaa6cfb9f2c95f5ae501ae37967650c707d32 ?

Yes!


why delete triplet loss with distributed training setting?

https://github.com/JDAI-CV/fast-reid/blob/e124a9afd3d662da32cb4c0b61175c83c58ce1ff/fastreid/modeling/losses/triplet_loss.py#L86
Why do you delete this distributed training setting for Triplet loss?
If deleting this, how to achieve the distributed training with triplet loss?
Is it not key point for triplet loss? I think it is because the model outputs ALL embeds when finishing distributed training, so we don't need the gather layer here.

We try triplet loss across GPU, but found there is no gain but introducing extra communication overhead. So we just turn it off and just compute triplet loss on intra-GPU.


Charts x-axis labels not localized anymore

On charts, time data labels on x-axis used to be localized.
Previous x labels logic was removed on that change https://github.com/umami-software/umami/commit/c1d3e9ec6757d4f67265486968e4ef1fc0702df9, now those are printed without taking care of the current locale.
By the way, nice to see the v2 release👍🎉 and good luck for dealing with migration issues 💪

labelling as bug. Always appreciate your help @Maxime-J !


[HOLD] [$1000] Web- Admin - Nothing appears if workspace is named <workspace_name starting with <

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

Action Performed:

Go to staging expensify on web chrome
Create a new workspace > Go to admins channel
Change the name of the workspace to < followed by some word
Result: See that in the admins room , nothing is displayed after 'to' at the end

Expected Result:
The updated workspace name should appear properly even when it is named as < followed by any word
Actual Result:
Nothing appears if workspace is named <workspace_name starting with <. Also the whole line is shown in a different color.
Workaround:
Unknown
Platforms:

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

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: yes
Reproducible in production?: yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/ab76c685-ca7c-436d-893b-3073143c2bb7
https://github.com/Expensify/App/assets/93399543/7b6e091d-86e8-40b5-8f0a-0af3d68c5216
Expensify/Expensify Issue URL:
Issue reported by: @avi-shak-jha
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1684769611423049
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~014aa9edd793117534
Upwork Job ID:<PHONE_NUMBER>347040768
Last Price Increase: 2023-06-08

Proposal
Please re-state the problem that we are trying to solve in this issue.
Web- Admin - Nothing appears if workspace is named <workspace_name starting with <
What is the root cause of that problem?
The root cause for this problem is that, the HTML coming from backend is not encoded.

The html should have < instead of <
What changes do you think we should make in order to solve the problem?

The one possible solution is to encode the html on backend and send that, when we change the name and API is called.
To pass a new prop shouldEncodeHtml to ReportActionItemFragment component that will decide if we will encode the html before passing it to <RenderHTML/> component.
The value for this prop will be decided in ReportActionItemMessage component, based on actionName

const shouldEncodeHtml = props.action.actionName === CONST.RPORT.ACTIONS.TYPE.POLICYCHANGELOG.UPDATE_NAME;.

This needs to be worked upon and I am looking for more options
What alternative solutions did you explore? (Optional)

This is okay to go external

Similar root cause as https://github.com/Expensify/App/issues/17758

Agree with @MonilBhavsar. We can hold this, and I'll put this issue in to the test case on https://github.com/Expensify/App/pull/20239

Reassigning, team change

Got it, let's keep this party going!

Still accepting proposals here

Still on hold

@mollfpr and @MonilBhavsar - should we move this one to weekly since it's on Hold?

For my notes, I think we are on hold because of this PR:
https://github.com/Expensify/App/pull/20239

Still on hold

Still on hold and waiting on an update if we should move to Weekly

Reassigning another bug team member, I'm going OOO until Monday, July 10, and will take it back then if it's not closed by then.
Required action from the 🐛 team: Check to see if this one goes back to a daily and we can resume work here.

reviewing today and posting next steps!

On hold it seems!

Hold, @MonilBhavsar shall we make this weekly?

Yes, let's make it weekly

Alright, removing the other 🐛 team member. I'm back online and see that this is our current state:
Still on hold

@MonilBhavsar are we still on hold here: https://github.com/Expensify/App/pull/20239

Yes, sorry, It's taking some time

All good, I've update this one to be Weekly again.

Weekly Update: On hold

Weekly Update: On hold

Weekly Update: On hold

Weekly update: On hold

Weekly update: On hold

Weekly update: On hold

Weekly update: On hold

Weekly update: On Hold

Weekly update: On Hold

Weekly update: On Hold

Weekly update: On Hold

Weekly update: On Hold but looks like the PR might get moving again

Weekly update: On Hold

Weekly update: On Hold

Weekly update: On Hold

Weekly update: On Hold

Weekly update: On Hold

Weekly update: On Hold

Weekly update: On Hold

Weekly Update: @MonilBhavsar any news here for my last question?

Weekly update: Waiting for a reply, I've sent a message in chat to try to figure out if we should close this one.

This issue is most probably fixed. We can retest and close

Weekly Update: I need to retest to confirm the next steps.

Issue not reproducible during KI retests. (First week)

Ok, there we go, we can close this out because it's not appearing in the tests.


feat: prompt xcframework_name to avoid duplicate target names error in Xcode

Thanks for this crate!
I tried to generate multiple Swift packages and include them in one project, but Xcode complained about duplicate target names. This is because the generated xcframework names are all the same. Strangely, I didn't get the prompt to supply the xcframework name like the package name prompt. This PR adds that prompt, with the default name being CrateName+XCFramework.

I would like to avoid prompting this. Most of the time, there is no need for seeing the xcframework name, so a command line flag is sufficient.
I agree, however, that the default name should be crate specific, thanks for pointing this out!

Ok. Do you want me to close this PR?


How does one remove this thing?

What is the uninstall command? Ubuntu 20.04

If you've installed it via: npm install -g localtunnel then maybe give this a try: npm uninstall -g localtunnel
More info on how to uninstall npm packages: https://docs.npmjs.com/cli/v6/commands/npm-uninstall


up.json type directive is not respected

Not sure if the current behavior is the legit one, but it was confusing to me. When deploying a static app type and declaring at up.json level type=static, if the source tree contains a file assosiated to an specific language runtime, such as package.json, the explitic type is ignored and the app deployment assumes it’s an node.js app, instead of static app.
I think explicitness here should have preference, always.
Thanks for creating Up :)

ahhh agreed, just an oversight, I'll get that fixed!


the training pipeline about style lora

Thanks for your excellent work. Do you have a plan to release the training script about how to train a style lora?

Thanks for your excellent work. Do you have a plan to release the training script about how to train a style lora?

sure, we'll release it in the near future.

Thanks for your excellent work. Do you have a plan to release the training script about how to train a style lora?

sure, we'll release it in the near future.

Thanks for your excellent work, too.
When do you expect to release it ?

Thanks for your excellent work. Do you have a plan to release the training script about how to train a style lora?

sure, we'll release it in the near future.

Thanks for your excellent work, too. When do you expect to release it ?

we'll try our best to release it in 12.30 roughly.

@sunbaigui Thank you for your excellent work on this project. I noticed that the training script for style LoRA is on the to-do list, and many of us are eagerly anticipating its release. Could you please provide an update on the progress? It would be greatly appreciated if you could prioritize this feature, as the ability to extend style LoRA would greatly enrich the applications of this project.

A small development team has recently been established to expedite the release of this feature. @You-Cun FYI.

We have established the codebase, and are now managing to adjust the default training options to simplify usage. The training pipeline is expected to be released in 07.01 roughly.

I'm looking forward to the release of the training script.

training pipeline merged #583 , enjoy :-).


Set up SEARCH_PATH only once when running an update command

Impact

[x] Bug fix (non-breaking change which fixes expected existing functionality)
[ ] Enhancement/New feature (adds functionality without impacting existing logic)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description
Fixes #5316.
This PR provides a new DatabaseUtils method to set up SEARCH_PATH variable permanently when running any update family command. Previously when running a update-sql command on a Postgres DB we could see multiple SET SEARCH_PATH... statements in the generated SQL output. It seems that was happening because of the DatabaseUtils.initializeDatabase() call performed in the rollback() method from PostgresDatabase implementation. With this change that's not happening anymore, but SQL output will be a bit different now, since what we will see is:
ALTER DATABASE lbcat SET SEARCH_PATH TO test_schema_daniel, "$user","public";

only once.

Things to be aware of

This a Postgres specific change.

Things to worry about

I guess we might need to apply the same logic in PRO (update-one-changeset) if we are happy with these changes.

Additional Context

This is still a work in progress since I need to add some tests to this PR, but I would appreciate it if you guys could start reviewing these changes in the meantime.
From a testing point of view what I have done so far is to execute update/update-sql commands using a changelog with a few changesets and having:
<changeSet author="lbuser" id="4-table" labels="testtable4" contextFilter="none" failOnError="false">
        <createTable tableName="testtable4">
            <column name="supplier_id" type="numeric(4)"/>
            <column name="supplier_name" type="TTTTVARCHAR(50)"/>
        </createTable>
    </changeSet>

as one of them. Which will cause the rollback method to be triggered.

Run update/update-sqlcommands without proving any specific schema.

-- Release Database Lock
UPDATE public.databasechangeloglock SET LOCKED = FALSE, LOCKEDBY = NULL, LOCKGRANTED = NULL WHERE ID = 1;

Also update was successfully executed storing changes in the public schema, as expected.

Run update/update-sqlcommands proving --default-schema-name=test_schema_daniel schema. Output was:

-- Create Database Lock Table
CREATE TABLE test_schema_daniel.databasechangeloglock (ID INTEGER NOT NULL, LOCKED BOOLEAN NOT NULL, LOCKGRANTED TIMESTAMP WITHOUT TIME ZONE, LOCKEDBY VARCHAR(255), CONSTRAINT databasechangeloglock_pkey PRIMARY KEY (ID));

-- Initialize Database Lock Table
DELETE FROM test_schema_daniel.databasechangeloglock;

INSERT INTO test_schema_daniel.databasechangeloglock (ID, LOCKED) VALUES (1, FALSE);

ALTER DATABASE lbcat SET SEARCH_PATH TO test_schema_daniel, "$user","public";

-- Changeset changelog/xml/showSummaryWithLabels.xml::1-table::lbuser
CREATE TABLE test_schema_daniel.testtable1 (supplier_id numeric(4), supplier_name VARCHAR(50));

-- Changeset changelog/xml/showSummaryWithLabels.xml::4-table::lbuser
CREATE TABLE test_schema_daniel.testtable4 (supplier_id numeric(4), supplier_name TTTTVARCHAR(50));

...

Process finished with exit code 0

Also execute same test (only for Postgres) that Enzo comment here.

NOTE: just in case I would like to mention part of the provided SQL outputs have been deleted to not make comments too long because of the length of them.


Mobile coverage can fail on main seeing coverage as too low

Not sure why - but afaict this only happens on main and only sometimes - i didnt discern a pattern
When fixing the mobile coverage this issue came up - i believe related to RBE caching and not rerunning tests - iirc we added --nocache_test_results
i believe that these tests are run with --remote_download_output=all which can also affect what the coverage collection can see - but there are a few competing flags in the mobile ci so probably it has something to do with this
Writing directory view page.
Overall coverage rate:
  lines......: 62.2% (1353 of 2174 lines)
  functions..: 73.1% (269 of 368 functions)
Compressing coveraged data
##vso[task.setvariable variable=COVERAGE_FAILED]1
Code coverage 62.2 is lower than limit of 76

https://github.com/envoyproxy/envoy/actions/runs/5142538540/jobs/9256415404#step:5:218

cc @RyanTheOptimist @alyssawilk

failing engflow:
https://envoy.cluster.engflow.com/invocation/7ed7b9f5-3fa1-4c49-96a0-eb6baa2e61ee#details
passing ci/engflow:
https://github.com/envoyproxy/envoy/actions/runs/5142472132/jobs/9256266376#step:5:217
https://envoy.cluster.engflow.com/invocation/78961b10-b545-40dc-8da1-b9bd2cf7b752#details

hm, it looks like the report artifact doesn't upload when coverage fails.  is that something you could tackle @phlax?  If not I will give it a shot as it'd help debug what's going on.

pretty sure its bazel/RBE related - happy to have a look but reproducibility is challenging given im not sure why it does/not happen
ill try and track the links i posted above as i think they should provide some clues

afaict this is the first fail on main https://github.com/envoyproxy/envoy/actions/runs/5104963962/jobs/9176240964#step:5:180
ill check prs more thoroughly now to see if its only main
its pretty infrequent

still an issue
https://github.com/envoyproxy/envoy/actions/runs/5553382614/jobs/10141871161#step:5:218


XSS vulnerability in visualize

It is currently possible to inject disrupting code into visualize that could be used to create an XSS attack for users on bad links. For example, the following URLs illustrate this, disrupting the variable creation:
https://amigo-staging.geneontology.io/visualize?mode=client_amigoquas%22--%3E %3Csvg/onload=alert(document.domain)%3E%3C!--[2]
https://amigo-staging.geneontology.io/visualize?mode=client_amigoquas%22--%3E %3Csvg/onload=alert(document.domain)%3E%3C!-- [https://amigo- staging.geneontology.io/visualize?mode=client_amigoquas%22--%3E%3Csvg/ onload=alert(document.domain)%3E%3C!--]
Noted on staging.

It appears to have been an error in error handling. Fix applied, tested against given URLs, and rolled out to endpoints.

No further report from LBL; closing for now.


Add the caldera test cases to the e2e tests

Currently, the caldera tests are true e2e tests since they test if the policy applied to  security engine is actually doing what is intended.
We can use put this testing functionality into the current e2e tests

For the coco-workload e2e test, we need KVM on the runner.
This post (https://github.blog/changelog/2023-02-23-hardware-accelerated-android-virtualization-on-actions-windows-and-linux-larger-hosted-runners/) mentions that kvm is available on large runners.
From (https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners)
"if you are on the GitHub Team or GitHub Enterprise Cloud plan, you can provision a runner with more cores, or a runner that's powered by a GPU or ARM processor. These machines are referred to as "larger runner." "
The SE-RAN is neither an GitHub paid team nor a GitHub Enterprise

@VedRatan Can you link the draft PR?

Blocked as an epf runner is yet to be in place.


nans in calculation of the spherical harmonics

There are nans when computing spherical harmonics with the number of degrees > 87 in dimension 3.
Steps to reproduce:

Generate fundamental system cache for dim = 3 and the number of degrees > 87.
Run the code:

import numpy as np
from spherical_harmonics import SphericalHarmonics

X = np.r_[0., 0., 0.].reshape(1, -1)

harmonics_86 = SphericalHarmonics(dimension=3, degrees=86)
hX = harmonics_86(X)

print(np.any(np.isnan(hX)))  # False

harmonics_87 = SphericalHarmonics(dimension=3, degrees=87)

hX = harmonics_87(X)

print(np.any(np.isnan(hX)))  # True

Expected behaviour:
No nans

The spherical harmonics are only defined on the sphere. I'm not surprised that the input X = np.r_[0., 0., 0.].reshape(1, -1) leads to nans. Can you double-check that this isn't the issue, please?


Warnings in Developer Tools

console.ts:137 [Extension Host] stack trace: TypeError: Cannot read properties of undefined (reading 'uri')
    at u (c:\Users\brcan\.vscode-insiders\extensions\ms-python.isort-2022.3.11671003\dist\extension.js:1:70138)
    at l (c:\Users\brcan\.vscode-insiders\extensions\ms-python.isort-2022.3.11671003\dist\extension.js:1:70336)
    at t.restartFormatServer (c:\Users\brcan\.vscode-insiders\extensions\ms-python.isort-2022.3.11671003\dist\extension.js:1:70922)
    at f (c:\Users\brcan\.vscode-insiders\extensions\ms-python.isort-2022.3.11671003\dist\extension.js:1:302174)
    at c:\Users\brcan\.vscode-insiders\extensions\ms-python.isort-2022.3.11671003\dist\extension.js:1:302325 (at console.<anonymous> (c:\Users\brcan\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:85:93517))

  ERR Cannot read properties of undefined (reading 'uri'): TypeError: Cannot read properties of undefined (reading 'uri')
    at u (c:\Users\brcan\.vscode-insiders\extensions\ms-python.isort-2022.3.11671003\dist\extension.js:1:70138)
    at l (c:\Users\brcan\.vscode-insiders\extensions\ms-python.isort-2022.3.11671003\dist\extension.js:1:70336)
    at t.restartFormatServer (c:\Users\brcan\.vscode-insiders\extensions\ms-python.isort-2022.3.11671003\dist\extension.js:1:70922)
    at f (c:\Users\brcan\.vscode-insiders\extensions\ms-python.isort-2022.3.11671003\dist\extension.js:1:302174)
    at c:\Users\brcan\.vscode-insiders\extensions\ms-python.isort-2022.3.11671003\dist\extension.js:1:302325

  ERR Cannot read properties of null (reading 'map'): TypeError: Cannot read properties of null (reading 'map')
    at asDiagnostics (c:\GIT\formatters\vscode-isort\dist\webpack:\isort\node_modules\vscode-languageclient\lib\common\protocolConverter.js:34:1)
    at Object.asCodeAction (c:\GIT\formatters\vscode-isort\dist\webpack:\isort\node_modules\vscode-languageclient\lib\common\protocolConverter.js:598:1)
    at c:\GIT\formatters\vscode-isort\dist\webpack:\isort\node_modules\vscode-languageclient\lib\common\client.js:1226:1
    at A.provideCodeActions (c:\Users\Karthik Nadig\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:92:42766)

This seems to occur due to us returning code actions even when it is not needed. In def code_action_organize_imports(params: lsp.CodeActionParams) in server.py we return both organize and quick fix code actions in all cases. We should only be retrning quickfix if one is needed. We should not be returning the organize code action when providing a quickfix.

This error should not occur any more. Please re-open if it does again.


[Warhammer 4e Character Sheet] Fixes & roll temp updates

Changes / Comments

Cleaned up roll template for critical roll text on casting and channelling to make it clearer that theses at happening.
PC & NPC Characteristic rolls now show success/failure message.
Added some further missing translation tags

Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[x] Does the pull request title have the sheet name(s)? Include each sheet name.
[ ] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[ ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.


Don't coerce args with ToNumber

Generally not recommended anymore: https://github.com/tc39/how-we-work/blob/main/normative-conventions.md#avoid-coercing-arguments-to-types-other-than-boolean

Fixed in 513523edf172b71060b96249e90be8c7db997e9d


add light and dark mode to the articles [slug].tsx file

✨ Codu Pull Request 💻

👉 Please remove the below and replace with your own values, leaving the headers where they are. 👈
Pull Request details:
pull request for light and dark mode to be added to the articles [slug}.tsx page.
have added a colour change on the menu for the light section included 2 screenshots one with white one with the new colour going with the rest of the colouring see which one you want in.
Any Breaking changes:
None
Associated Screenshots:
( Welcome file extensions include gifs/png screenshots of your feature in action )

Im not sure if this is all that is required for this issue could you please confirm as didnt want to change the article in any way in case i was wrong the code on the page seemed to be targeting the side bar, if you want me to change the article itself can you just send a link for the page or is it the same page many thanks
Lisa

So just to clarify the work I did on the [slug].tsx file needs putting back to how it was and work on the new file you sent me sorry just like to get things right 😊

So just to clarify the work I did on the [slug].tsx file needs putting back to how it was and work on the new file you sent me sorry just like to get things right 😊

@Mrst12 yes that's correct!

Hi @NiallJoeMaher can you help me out please, i have put the [slug].tsx file back to how it was in the original repo no worries about that however in light mode it is showing up the dark colours in the localhost: 3000

There is also some dark attributes already on the .prose classes in the global css file so can you please clarify what values you want for light  and dark for text, and background also there is a border set in the prose class with dark values so if you can confirm what you want the values to be for light and dark  i can go through and check and change if necessary
Sorry this is my first open source contribution i dont want to get it wrong and my confidence is not that brilliant i am however willing to keep plodding just need a bit of guidance sorry for being a pain 😊

Ah it looks like you need to update in both places then. Thats my fault not yours for misreading in the code review. For the menu itself the drop down of options that doesn't need to be updated but this box does.
Then all of the .prose styles should affect the article formatting. How the text and everything is formatted. So just seeing anywhere there is light text and adding in the appropriate light dark modes.
If you want more specific let me know and I'm more than happy to guide you. Great work so far!

@NiallJoeMaher no worries so i can revert my [slug].tsx file back to what i did yesterday (not committed the change yet so its simple enough to undo the changes.)
The .prose classes should have the same light and dark values as the [slug].tsx page is this correct
Thank you

this is the dark mode and light mode with the changes from yesterday to the [slug].tsx file without the dropdown box being affected. The global.css file doesnt seem to alter the text being light on the prose classes am i ok to send the pull request for the box at the side to be merged as then at least i feel i have done something thats right 😊

further down the page in light mode the text is visible without altering any code

Thats looks better @NiallJoeMaher are you doing this as a separate issue am happy to plod and be assigned it if you are you would just need to let me know which file to change the styles in.
do you want me to send you the pull request later for the side box that i have altered,(screenshot)  cant work on issues now as got to go to harvest festival assembly
heres the screen shot of the articles side as it stands in my code at the minute

Just let me know how you want me to proceed sorry feel like i being a right burden

Not a burden at all! You are helping. You can split it into two PRs if you like since it will be two different parts of the page. And you'll get two contributuions 🥳

Will send pull request when kids in bed and tackle the rest tomorrow thank you 😊


Code

Implementation of multiline for token code

I indeed seems that "$fun" " .exec" produces a single string. This is a good thing ! Please add a test case for it.

@ulysseB I have added the single code test case at lexer.rs#L516.


Disable delete and create

Hi!
Is there a way to disable delete and create in an uncontrolled tree, in the same way as e.g disableEdit? I would like to always disable create and disable delete for leaves
If not, is it possible to add as a new feature? Thanks!

I believe you can attach an onKeyDown listener to the node and call e.preventDefault when the delete key is pressed. Do the same for "a" and "shift+a". Those are the create keyboard shortcuts.

I will address this in #57 . You'll then be able to customize what the delete key does. Closing as part of that ticket.


Add an option where it will only buy items if they're free

I just lost 2000 robux due to it buying since there are no systems in place for this.

I just lost 2000 robux due to it buying since there are no systems in place for this.

fork repository
change expectedPrice to 0, cuz it will throw PriceMismatch error
I haven't done that yet cuz idk what the hell yarn is

Yeah, the installation instructions for this script is a bit strange. Here is a better one that may help:

Install Git: Go to https://git-scm.com/downloads and download and install Git for Windows.
Install Node.js: Go to https://nodejs.org/en/ and download and install
Install Yarn: Type "npm install --global yarn" in the Command Prompt and press Enter. This command will install Yarn globally on your system.
Open Command Prompt: Press the Windows key and type "Command Prompt" and press Enter.
Clone the repository: Type "git clone https://github.com/thurdev/roblox-limiteds-sniper-free.git" in the Command Prompt and press Enter.
Go into the repository: Type "cd roblox-limiteds-sniper-free" in the Command Prompt and press Enter.
Install dependencies: Type "yarn install" in the Command Prompt and press Enter.
Setup .env: Type "copy .env.example .env" in the Command Prompt and press Enter. Then follow the tutorial to set up the .env file.
Run the app: Type "yarn start" in the Command Prompt and press Enter. The app should start running.

there's this one too
https://github.com/Furrycality/UGCatcher

I already gave up on this project, since there is a lot on the market, much better for example: Xolo, or Wagoogous (Which will likely terminate your services as well).


Script Save As saves changes to the original script as well

Not sure if this is intended, but I just found out that Save As on script not only saves/creates the script with a new name, but it also saves the original script, too.
After doing Save As, I'd expect the editor to keep the original script intact (meaning 'as saved previously') and the new one saved/created with all of the changes between the two save operations. Currently, one ends up with two identical scripts under two different names. This happens in v3.5.9 EE running on Win x86-64.

Agreed, original script shouldn't be saved.
Thanks for report.


[bug]: Max seed value is too low

Is there an existing issue for this?

[X] I have searched the existing issues

OS
Windows
GPU
cuda
VRAM
8GB
What happened?
There are plenty of prompts all over the internet with seeds much higher than what InvokeAI allows.
E.g., I tried this one:

112358132141

It was truncated to:

4294967295

Up-arrow icon next to the field is greyed out indicating limit is reached.
It seems, the issue appears with any sampler.
Screenshots

Additional context
No response
Contact Details
No response

Do we know whats the high end cap for seed values? If there is one.

looks like it's a 64-bit int: https://pytorch.org/docs/stable/generated/torch.manual_seed.html#torch.manual_seed
in decimal, that's 18,446,744,073,709,551,615
(Wolfram Alpha claims that's less than the number of possible states of Rubik's cube, which seems hard to believe!)

In AUTOMATIC1111, I've tried to detect it from trial end error. Here are my findings:

The field itself seems to be unlimited in size.
But it behaves differently depending on what you've input there

a regular int or a float are both treated as a float
if you put any character stopping it to be a number, it seems to be treated as a stricng, shich is hashed in some way.

The max raw seed value is<PHONE_NUMBER>3709519872, i.e. 2^64
HOWEVER, all the generations starting from<PHONE_NUMBER>3709517824 (2^64-2048) give almost the same result. As well as 2048 seeds before them (witrh another image), As well as 2048 before them..

This behavior doesn't seem to depend on a model being used.
And it also hints that floats are used even with provided int seeds.

So, with these findings:

I believe, the best solution would be replecate the same seed treatment as in A11's webui.
If you don't agree, you should at least raise the max value to<PHONE_NUMBER>3709519872.

So Typescript lets me know that  ...
Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers.
.. which means<PHONE_NUMBER>740992 is the highest value I can set for the field.

The goal isn't to allow a user input anything, but to be able to re-generate other people's examples. So I guess, for now you should at least raise it to<PHONE_NUMBER>740992 as a simple fix.
But in the future - yeah, I strongly believe generated images shouldn't be different depending on which UI you used to make them. So, yeah, the true solution is unfortunately "follow A11 since he sets the trend".

Also,

too large to be represented accurately as integers

Doesn't that mean you can also represent them as floats? A11 seems to do the same thing. It SHOWS a user whatever they have typed. But it USES these seeds as floats.

The goal isn't to allow a user input anything, but to be able to re-generate other people's examples. So I guess, for now you should at least raise it to<PHONE_NUMBER>740992 as a simple fix.
But in the future - yeah, I strongly believe generated images shouldn't be different depending on which UI you used to make them. So, yeah, the true solution is unfortunately "follow A11 since he sets the trend".

The main difference in the results is because of how each implementation handles the attention system. As long as that is not standardized, they will all end up having different results. Maybe some day we'll have a library that is so state of the art that everyone uses that and we get some sort of standardization but I don't think that's happening any time soon. The seed value is the smallest concern in that regard.

I'd have to manually add a ton of checks to verify that the entire thing is a number
For now, as a simpler solution, you can:

Keep it a number in the UI
Raise the field max limit to 2^64 if possible,<PHONE_NUMBER>740992 otherwise.
Under the hood (in Python), convert those ints into floats.

As long as that is not standardized, they will all end up having different results.
I understand that. But I believe it would be better if we at least try to minimize those differences.

The seed value is the smallest concern in that regard.
I get somewhat different results in A11's UI and yours. I get it, different implementations. But being unable to replice someone else's result AT ALL seems like a huuuge turn of to any other newcomers (and somewhat to me, tbh).

Hypothetically you could use BigInt, but I have no idea whether the input widget and validation methods are written for that.

I strongly recommend promoting the seed to the largest integer the InvokeAI default latent generator algorithm can handle.  Unfortunately, InvokeAI uses a different latents generator algorithm than other stable diffusion implementations (such as the Replicate cogs which use a pytorch Generator seed:  https://github.com/replicate/cog-stable-diffusion/blob/38510524cf4f3dc679e5945ebb52feb40d52c1a9/predict.py#L106).  It would be great if these different latent generation algorithms were made pluggable within InvokeAI, such that artists migrating from other implementations could fully utilize InvokeAI.  Currently, the seeds are incompatible even if they are the have the same numeric scale (and using the "same" scheduler or CFG scale, and other parameters)

I'll add a pull request soon.  I have increased the UI seed max to 2^53 as per Javascript precision limitations.  I will test and see if seeds are usable to 2^63 via CLI invocation with the seeding changes I made to the pipeline.  I have been able to utilize 53-bit seeds originally used with the standard diffusers StableDiffusionPipeline, and obtained perceptually identical results in InvokeAI.  I have also adjusted the minimum CFG value allowable in the InvokeAI UI as well.

I opened this pull request which supports 53-bit seeds in the invokeai UI, and 63-bit (pytorch/numpy maximum) seeds via the invokeai CLI.
https://github.com/invoke-ai/InvokeAI/pull/2843

Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers.

Hypothetically you could use BigInt, but I have no idea whether the input widget and validation methods are written for that.

Unfortunately, using BigInt would forgo using the pytorch/numpy random number generator algorithm 63-bit limit:
https://pytorch.org/docs/stable/generated/torch.manual_seed.html
While it is possible to generate latents with larger seeds, it would prevent seed sharing between stable diffusion implementations that use the current tacitly agreed upon method.

I also noticed this problem of seed truncation and would like to reopen this issue if possible


UserManager.Logger is virtual and set in the constructor

Pretty much as the title says.
This is considered bad practice, as ctor order is the most base class to the most derived class, so if the property is overridden in a subclass it may not be properly initialized.
Static Analysis even has a rule against this: https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2214-do-not-call-overridable-methods-in-constructors (note that properties are effectively just a pair of methods, so the rule does in fact apply).
Here's a hypothetical example of something that could go wrong:
public class ApplicationUserManager : UserManager<ApplicationUser>
{
    private IObserver observer;

    public ApplicationUserManager(IObserver observer)
        : base(/* ... omitted for brevity ... */)
    {
        this.observer = observer;
    }

    public override ILogger Logger
    {
        get
        {
            this.observer.RecordPropertyGet(nameof(Logger));
            return base.Logger;
        }
        set
        {
            this.observer.RecordPropertySet(nameof(Logger), value);
            base.Logger = value;
        }
    }
}

In that example, the base class will set the Logger property, which will be the derived classes's impl, which uses this.observer, but oops it's null at that point in time since ApplicationUserManager's ctor hasn't actually executed yet.
I am curious btw why this prop is virtual to begin with. It's a bit odd to see a virtual autoprop.

Closed, as this is common throughout asp.net and should be part of a wider breaking push if one were to happen


[AVM Module Issue]: web/site is missing option for container app environment

Check for previous/existing GitHub issues

[X] I have checked for previous/existing GitHub issues

Issue Type?
Feature Request
Module Name
avm/res/web/site
(Optional) Module Version
No response
Description
Hi,
for function apps running in container apps environment the module is missing the option to specify the kind : "functionapp,linux,container,azurecontainerapps" and to specify managedEnvironmentId instead of serverFarmResourceId
resource functionApp 'Microsoft.Web/sites@2023-12-01' = {
  name: functionName
  location: location
  kind: 'functionapp,linux,container,azurecontainerapps'
  properties: {
    managedEnvironmentId: containerAppEnvironment.outputs.resourceId
    siteConfig: {
      linuxFxVersion: 'DOCKER|mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0'
      appSettings: [
        {
          name: 'FUNCTIONS_EXTENSION_VERSION'
          value: '~4'
        }
        {
          name: 'AzureWebJobsStorage'
          value: 'DefaultEndpointsProtocol=https;AccountName=${functionStorageName};EndpointSuffix=core.windows.net'
        }
      ]
    }
  }
}

(Optional) Correlation Id
No response

Hey @jhueppauff  - thanks for logging this. We shall triage it WC 12/08.

@jhueppauff this should be available now. Give it a try

@jhueppauff Just following up if you managed to try it out ?

Closing this following the release of the feature. :) thanks all.


allow function state storage url to configurable in standalone deployment

Motivation
Currently, the logic for setting storateStateServiceUrl in the worker is not correct and not configurable.

rerun cpp tests

rerun java8 tests


cividis support

Cividis is a new perceptually uniform colormap with special consideration for color vision deficiency. This should be supported.
Reference: https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0199239

The look up table is released under CC0 by the authors:
https://journals.plos.org/plosone/article/file?type=supplementary&id=info:doi/10.1371/journal.pone.0199239.s002


Delete local account nuget or unlink account with MSA.

I have two local accounts. One is linked with MSA, but i want to unlink it or delete it, then i can bind another local account to MSA.

Please log in to the account you want to delete (MSA linked account) and submit a request to delete the account from https://www.nuget.org/account/delete
This will walk you through the process of transferring package ownerships and other cleanup.
Once you have deleted the account, you can link the MSA account to your other account.
Please note that if you delete an account, you will not be able to create an account with the same username as the deleted account.

Thanks.


Responsive Sidebar

Feature request for a responsive sidebar
Adding a sidebar (like this) component.

We had this on the roadmap already :)
ETA probably end of the month.

See https://flowbite-svelte.com/. It shows sidebar menu for a wide screen and close it for a smaller screen.
You can see the code in +layout.svelte.
I'm on the process of writing how to do it for a blog post and let you know once it is done.

Meanwhile, have a look at this repo, flowbite-sveltekit-responsive-sidebar-layout.
You can find demo.


Adding a FAQ's Page

I will add a FAQ's Page for the website .

Thanks for your issue. This web app is easy to understand. So there is no need of FAQ's Page.


rig does not work well on arm64 Windows

Because R installs into C:\Program Files (x86)\R and rig assumes C:\Program Files\R.

Another issue that we might not be able to work around is that older R installers (before the x86_64 only R 4.2.0?) will only install the 32 bit version of R.

I'll close this for now, as R is probably coming soon to arm64 Windows.


feat(attention): add blink functionality

#17

i'll add tests for timeouts later

Did it work in real browser in demo page?

yep

Great, it’s all tests that we need :)

okay =)


Remove oss-parent from pom.xml

Sonatype has deprecated the use of their parent pom. The metafacture-core pom needs to be updated.

Solved with the switch to gradle in commit 0f7a3b2210b8bb2419d2cdbe53c12e2a8190d0a2.


Adds initial file upload and management.

closes #141
https://github.com/user-attachments/assets/06812c93-83a6-4f85-b1c6-627eabdd7842

Follow-up work:

Display files on work show page.
Pagination
Clean up job for Content / Content Files
Authorization for Content / Content files controllers
Upload UI enhancements


Data_Wrap_Struct is deprecated

See official docs.
Need to update the section on wrapping C data.

Fixed by 4340f6a8781c73c941bb931e9de0eee5bd47024a


Improve partial application

Currently partial application is implemented as follows:

Natives magically implement as one-offs, using Pact.Eval apply,apply'
the typechecker relies on the type signature of the consuming function to detect partial application, using that to mangle the type signature to add the provided arguments. Basically a function type in argument position assumes partial application.
flip is impossible currently which then requires new functions for flipped versions of >, etc.

One approach is to introduce wildcards a la Clojure, underscores, or maybe question marks are better as they at least resemble SQL statement parameters: (> ? 20). Implementation would be relatively straightforward by making the arglist recognize the special wildcard, presumably with another constructor in the Arg type.
Thunks are a more robust solution, but with one big problem: there is no way to distinguish partial application from full application currently in Pact, the specific problem being overloads with different arities. The current Haskell-style partial-application is quite convenient to write, and would need partial or other legibility-damaging sugar for this. However, we could do what the typechecker does and just assume a function type in arg position is partial, and then require explicit wildcards when wanting to do a thunk in some other position.
Thunks would either be a new AST member or a flag in TApp Term constructor.

This area of the language is rare enough not to warrant significant extra complexity just for some code brevity. Brevity, particularly in rare contexts, can of course be the enemy of readability and implementation correctness, particularly if you want the language to be Lisp-like and the enhancements (including existing partial application, compose, etc.) depart from Lisp, or its simpler-and-not-broken nephew Scheme. (In particular, Scheme got rid of the utterly confusing #' operator in Lisp.)
I think that defined function symbols and lambda literals should be permitted in "immediate application" contexts, which in Pact would include the functional argument of map, fold, and filter. Consider a Scheme example (tested in Racket):
> (map length '(() (1 2 3)))
'(0 3)
> (map (lambda (x) (+ 1 (length x))) '(() (1 2 3)))
'(1 4)

That's super easy to read, easy to process, and super flexible/powerful. It's just somewhat verbose, and that's not worth leaps and bounds to fix. Just shortening the name of "lambda" would go a long way.
To emphasize the commonness of lambda, even ACL2, a Lisp-based system that is first order (no functions as values), recognizes immediately applied lambdas, to support let and let* as macro expansions:
ACL2 !>((lambda (x) (+ 1 (length x))) '(1 2 3))
4

Partial application is already important and widely used in pact, not a "rare area", employing a Haskell-like look that is drastically more preferable from a legibility point of view than partial and other LISP partial app stuff I've seen. Here's an example of how it gets used in select:
(select people (where (and? ('age (> 30)) ('name (= "Fatima")))))

The point is taken that a compressed syntax like wildcards could be dangerous. Regarding "immediate application" lambdas, a general concern with lambdas in Pact is the possibility of forming a Y-combinator, does this "immediate application" address that?
In many respects the biggest problem right now is the UX surrounding comparators: in the example above, it's easy to think the where is selecting users over 30 when instead it's "30 is greater than". One option is to introduce flipped versions of comparators, perhaps using the name mangling employed above on and? (a higher-order and for composing partial applications), ie (>? 30).

a general concern with lambdas in Pact is the possibility of forming a Y-combinator, does this "immediate application" address that?

Yes it does. You have to allow binding symbols dynamically to functions/closures to build a combinator. For an "immediate application" context we must know that the lambda/closure is never bound to a symbol exposed to the user, nor that it "escapes" by return from a function or passage to a user function.
To your whitepaper point, "but also avoids creating closures which can significantly complicate variable scoping, leading to bugs," immediate application means that the dynamic vs. lexical scoping distinction never comes into play; immediate application means that the dynamic and lexical scopes are the same.
I certainly concede that lambdas do not solve the problem of concisely binding table columns to canonical names. One way to do this could be to have a syntactic distinction (sigil) for implicitly-bound names, and 'where' (or 'where$') would be a lambda-like built-in that binds such names, e.g.
(select people (where$ (and (> $age 30) (= $name "Fatima"))))

(Resolution of such names might be dynamic for REPL and during typecheck for analysis--I haven't fully thought it through.)

I hit the same confusion as @slpopejoy during some recent experimentation. Consider:
filter (< 5) [1..10]  -- [1,2,3,4]

and
(filter (< 5) [1 2 3 4 5 6 7 8 9 10])  ;; [6 7 8 9 10]


Say goodbye to gradle?

 It behaves completely different on travis and on my two laptops. Even with gradlew. The current build fails on travis with a deprecation warning but does not emit that warning on my laptop.
Does anyone have an idea how to make the build pass again?

For now, I removed the -Werror and field an issue for bnfc to check on their antlr support.


Add documentation

@fernandofleury I think it is, using defaultValue may not make it clear to the user the it can also be a function, the user may think that the only thing that can be passed to this property is an action value. What do you think?

@fernandofleury I think it is, using defaultValue may not make it clear to the user the it can also be a function, the user may think that the only thing that can be passed to this property is an action value. What do you think?


emcee won't run from source

General information:

emcee version: master
platform: Linux
installation method (pip/conda/source/other?): source

Problem description:
When trying to install emcee from source it seems that the emcee_version.py file never gets created, and so I'm getting an ImportError.
Expected behavior:
>>> import emcee

Actual behavior:
>>> import emcee
ImportError: No module named emcee_version

What have you tried so far?:
I grepped through the code base looking for an emcee_version.py file and noticed that it's in the .gitignore, so I guess it's a file which isn't stored in the git repository.
I bisected the problem to 13595f7c04f6e0711cc34567e398576e375043bc which is where the emcee_version.py file was introduced.
Minimal example:
$ git clone https://github.com/dfm/emcee
$ cd emcee
$ python setup.py install
$ cd ~

and then try to import it:
>>> import emcee

This is probably because setuptools_scm must be installed before running setup.py. What happens if you do:
pip install .

If that doesn't work,
pip install -U setuptools setuptools_scm
python setup.py install

should do the trick. Let me know and we'll update the docs!

Just trying pip install fails with:
(emcee_env) [tlatorre@localhost emcee]$ pip install .
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Processing /home/tlatorre/emcee
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... error
    ERROR: Command errored out with exit status 1:
     command: /home/tlatorre/emcee_env/bin/python2 /home/tlatorre/emcee_env/lib/python2.7/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /tmp/tmp3XO2W1
         cwd: /tmp/pip-req-build-ObXBAv
    Complete output (2 lines):
    running dist_info
    error: 'egg_base' must be a directory name (got `/tmp/pip-modern-metadata-GV2AR8`)
    ----------------------------------------
ERROR: Command errored out with exit status 1: /home/tlatorre/emcee_env/bin/python2 /home/tlatorre/emcee_env/lib/python2.7/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /tmp/tmp3XO2W1 Check the logs for full command output.

I didn't try the second approach but was able to get it to work with the changes in #322.

This is a completely separate error, but I bet it's related to py2.7 which we can no longer support!

I think we found a solution over in #322 and I've added some more instructions to the docs so I'm going to close. Feel free to reopen if there are remaining issues.


PBR thin instance color attribute needs to be pushed

PBRBaseMaterial is missing the code to push the attribute for thin instance color. This PR just copies the same lines from StandardMaterial.
Here's a PG that shows the issue that's fixed by the PR, where the thin instances are black when they should be red.
Forum: https://forum.babylonjs.com/t/vertex-error-and-no-colors-on-thin-instances-after-upgrade/28492/12

for reference https://github.com/BabylonJS/Babylon.js/pull/12333


cert-manager install retries exhausted

Sometimes you can see the error:
Name:         cert-manager
Namespace:    cozy-cert-manager
Labels:       <none>
Annotations:  <none>
API Version:  helm.toolkit.fluxcd.io/v2beta1
Kind:         HelmRelease
Metadata:
  Creation Timestamp:  2024-01-26T10:02:21Z
  Finalizers:
    finalizers.fluxcd.io
  Generation:        1
  Resource Version:  2778687
  UID:               941ed833-db28-40bd-82f5-e01a895d3dd7
Spec:
  Chart:
    Spec:
      Chart:               cozy-cert-manager
      Reconcile Strategy:  ChartVersion
      Source Ref:
        Kind:       HelmRepository
        Name:       cozystack-system
        Namespace:  cozy-system
      Version:      *
  Depends On:
    Name:        cilium
    Namespace:   cozy-cilium
    Name:        kubeovn
    Namespace:   cozy-kubeovn
  Interval:      1m
  Release Name:  cert-manager
Status:
  Conditions:
    Last Transition Time:  2024-01-26T13:33:07Z
    Message:               install retries exhausted
    Reason:                InstallFailed
    Status:                False
    Type:                  Ready
    Last Transition Time:  2024-01-26T13:33:07Z
    Message:               Helm install failed: rendered manifests contain a resource that already exists. Unable to continue with install: CustomResourceDefinition "certificaterequests.cert-manager.io" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "cert-manager"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "cozy-cert-manager"

Last Helm logs:

    Reason:                        InstallFailed
    Status:                        False
    Type:                          Released
  Failures:                        310
  Helm Chart:                      cozy-system/cozy-cert-manager-cert-manager
  Install Failures:                1
  Last Attempted Revision:         1.0.0
  Last Attempted Values Checksum:  da39a3ee5e6b4b0d3255bfef95601890afd80709
  Observed Generation:             1
Events:
  Type     Reason  Age                 From             Message
  ----     ------  ----                ----             -------
  Warning  error   10m (x71 over 15h)  helm-controller  reconciliation failed: install retries exhausted

currently fixed by:
  install:
    remediation:
      retries: -1


Package name not picked up

TLDR if I start package name with a newline then it's not picked up
So I indented my cabal file as follows
test1.cabal
cabal-version: 3.0

name:
  test
version:
  0.1

build-type:
  Simple

library
  exposed-modules:
    Foo
  hs-source-dirs:
    src
  build-depends:
    base >= 4.9

and got following from parsing
> parsePackage' <$> T.readFile "/tmp/test.cabal"
Right (Package "" [Comp Lib "" "src"])

However, if I change just one line then it parses (via Hie.Cabal.Parser) ok
test2.cabal
cabal-version: 3.0

name: test
version:
  0.1

build-type:
  Simple

library
  exposed-modules:
    Foo
  hs-source-dirs:
    src
  build-depends:
    base >= 4.9

> parsePackage' <$> T.readFile "/tmp/test2.cabal"
Right (Package "test" [Comp Lib "" "src"])

Since cabal accepts test1.cabal, I think it should be supported. What do you think?

Thanks for the report.
The problem is src/Hie/Cabal/Parser.hs:204.
PRs are appreciated, otherwise I'll try to get to it this weekend.

I tried to come up with a quick fix that will just call following function instead of tabOrSpace:
tabOrSpaceOrNewline :: Parser Char
tabOrSpaceOrNewline = tabOrSpace <|> '\n' <$ endOfLine

But that lead to failure of "succesfully parses empty other-modules2" test. It seems that when one calls skipMany tabOrSpaceOrNewline (cf definition above) it will consume too much indentation on the next line. Let's call this point 1.
While doing the fix I tried to add new test and in the process noticed that for the following pretty innocent cabal file
cabal-version: 3.0

name:
  simple-exe
version:
  0.1
build-type:
  Simple

executable simple-exe
  default-language:
    Haskell2010
  hs-source-dirs:
    src1 src2
  main-is:
    exe/Main.hs

the parse result would be
> parsePackage' <$> T.readFile "/tmp/simple-exe.cabal"
Right (Package "simple-exe" [Comp Exe "simple-exe" "src1/exe/Main.hs",Comp Exe "simple-exe" "src2/exe/Main.hs"])

The issue is the inferred paths: "src1/exe/Main.hs" and "src2/exe/Main.hs". When package meant by such cabal file wil be built, at the package toplebel there would exsit at least 3 directories: exe, src1 and src2. Directories src1/exe and src2/exe would not exist. Let's call this point 2.
Besides, what if some fields we're looking for are stored in common stanzas and are included rather than written verbatim? Handling all the cases seems hard - point 3.
Given the points 1, 2 and 3 outlined above it seems to me that the best course of action is not to duplicate Cabal parsing logic but instead either use parser from the Cabal package (but this particular dependency cannot be added for reason's I don't yet understand) or avoid parsing at all like suggested in https://github.com/Avi-D-coder/implicit-hie/issues/42.

#42 is definitely the way forward. This package was never meant to be a long term solution.


Split some files into smaller ones.

Description
Since the number of lines in a file increases, the compilation time per line of code also increases, I suggest reducing the number of lines of code in the files and breaking them into smaller ones.
Here is an example of a build with a timing summary (M1 Pro):

it takes too much time to build some parts.
This is the result of one benchmark, showing the dependence of compilation time per line of code depending on the number of lines in the Swift file:

Tracked in Apple’s issue tracker as rdar://125489574

How did you generate the graph that you attached? Compilation time should scale linearly with the number of lines in the source file in general.

@ahoppen , these are the results of a slightly modified benchmark from this topic:
https://forums.swift.org/t/regarding-swift-type-inference-compile-time-performance
The absolute results will of course be different for regular code, but the dynamics are the same, after a certain point, when adding new lines, the compile time per line grows exponentially.
Here is the code of the benchmark itself, the results of which are on the graph:
https://gist.github.com/VAndrJ/c0bdbaebb803fe8db4fb0c7c05ce01ee

The primary performance issue with your test case appears to be that you’re putting all source lines as top-level code. When adding them as statements (the parameter to range in your test) to a function, the compilation time scales linearly. As swift-syntax doesn’t contain any top-level code your measurements thus don’t apply to this repo.
Let’s move it to the compiler repo to track the compilation performance of source files that contain thousands of top-level lines of code.
Statements|a.swift                  | b.swift
----------+-------------------------+-----------------------
10'000    | 5.006s (0.5006ms / LOC) | 1.976s (0.1976ms / LOC)
 5'000    | 2.537s (0.5074ms / LOC) | 1.040s (0.208ms / LOC)
 2'000    | 1.076s (0.5375ms / LOC) | 0.489s (0.244ms / LOC)

Updated performance test script

#!/usr/bin/env python3
import os

filenames = ["a", "b"]
codeMixed = [
  'someFunc(data: SomeClass(data: SomeStruct(data: SomeStruct.Nested1.Nested2(point: CGPoint(x: {}, y: {})))))',
  'someFunc(data: .init(data: .init(data: .init(point: .init(x: {}, y: {})))))'
]

for (i, filename) in enumerate(filenames):
    with open(filename + ".swift", "w") as f:
        s = """import CoreGraphics
struct SomeStruct { struct Nested1 { struct Nested2 { let point: CGPoint } }; let data: Nested1.Nested2 }
class SomeClass { let data: SomeStruct; init(data: SomeStruct) { self.data = data } }
func someFunc(data: SomeClass) { _ = data.data.data.point }
func test() {
"""
        for j in range(2000):
            s += (codeMixed[i] + '\n').format(j, j)
        s += "}"
        f.write(s)
        os.system("hyperfine 'xcrun swiftc -typecheck {}'".format(filename + ".swift"))


Make auto-imports more convenient

Make them faster, use a script or something. Maybe batch add all missing imports.

Duplicate of #6; closing.


Can I Fetch without knowing type T?

I have something like Car:Vehicle and Truck:Vehicle and I need to query database that returns either.  Due to the underlining framework restriction, I cannot pass in generic type T, only string.  So I can create a dynamic type from the string, like

Is there a way to fetch based on the dynamic type and return a list of Vehicle that contains Car?  Thanks

This would probably work. Could create a wrapper for it.
Type type = typeof(Vehicle).Assembly.GetType("Car");
var vehicles = db.Query<Vehicle>(new[] { type }, null, "select * from cars");

Wow!  This is amazing!  Saved me tons of monkey reflection.  Thank you so much.
var vehicles = db.Query<Vehicle>(new[] { type }, null, new Sql("select * from cars"));


Query string params not populated

I'm passing a query string parameter, but not seeing it with:
Flight::request()->query['last_seconds']

Here is the route:
Flight::route('/execution-queue', array("ExecutionQueue", "all"));

Here is the full URL:
https://api.mydomain.com/execution-queue?last_seconds=60

Can you do a var_dump of Flight::request()?

➜  ~  curl -i https://api.mydomain.com/v1/execution-queue?last_seconds=60
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 24 Mar 2015 05:43:42 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
strict-transport-security: max-age=31556926
x-host: web3.mydomain.com
x-pid: 12252
object(flight\net\Request)#20 (17) {
["url"]=>
string(16) "/execution-queue"
["base"]=>
string(4) "/api"
["method"]=>
string(3) "GET"
["referrer"]=>
string(0) ""
["ip"]=>
string(15) "<IP_ADDRESS>"
["ajax"]=>
bool(false)
["scheme"]=>
string(8) "HTTP/1.1"
["user_agent"]=>
string(11) "curl/7.37.1"
["type"]=>
string(0) ""
["length"]=>
string(1) "0"
["query"]=>
object(flight\util\Collection)#21 (1) {
["data":"flight\util\Collection":private]=>
array(0) {
}
}
["data"]=>
object(flight\util\Collection)#22 (1) {
["data":"flight\util\Collection":private]=>
array(0) {
}
}
["cookies"]=>
object(flight\util\Collection)#23 (1) {
["data":"flight\util\Collection":private]=>
array(0) {
}
}
["files"]=>
object(flight\util\Collection)#24 (1) {
["data":"flight\util\Collection":private]=>
array(0) {
}
}
["secure"]=>
bool(true)
["accept"]=>
string(3) "/"
["proxy_ip"]=>
string(14) "<IP_ADDRESS>"
}

It looks like your server is not passing on the query string to the url property. My output looks like this:
object(flight\net\Request)[10]
  public 'url' => string '/execution-queue?last_seconds=60' (length=32)
  public 'base' => string '/api' (length=4)
  public 'method' => string 'GET' (length=3)
  public 'referrer' => string '' (length=0)
  public 'ip' => string '<IP_ADDRESS>' (length=9)
  public 'ajax' => boolean false
  public 'scheme' => string 'HTTP/1.1' (length=8)
  public 'user_agent' => string 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36' (length=114)
  public 'type' => string '' (length=0)
  public 'length' => string '' (length=0)
  public 'query' =>
    object(flight\util\Collection)[11]
      private 'data' =>
        array (size=1)
          'last_seconds' => string '60' (length=2)
  public 'data' =>
    object(flight\util\Collection)[12]
      private 'data' =>
        array (size=0)
          empty
  public 'cookies' =>
    object(flight\util\Collection)[13]
      private 'data' =>
        array (size=0)
          empty
  public 'files' =>
    object(flight\util\Collection)[14]
      private 'data' =>
        array (size=0)
          empty
  public 'secure' => boolean false
  public 'accept' => string 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' (length=74)
  public 'proxy_ip' => string '' (length=0)

The difference is that in my nginx setup I simply have:
        location /api {
            try_files $uri $uri/ /api/controller.php;
        }

        location ~ \.php$ {
            fastcgi_pass   <IP_ADDRESS>:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

I'd suggest playing around with your nginx configs a bit. Hope that helps.

It was my proxy_pass in nginx before this instance of nginx. You have to explicitly pass query string parameters with:
proxy_pass http://<IP_ADDRESS>:6000/api/$url$is_args$args;


Unable to save an empty project

Saving an empty project produces an error.
Create a new project, click 'save online', enter a project name, and see the error.
(Not working on this issue)

The problem seems to be here
When the circuit is empty, then data_url is data:,, it otherwise is data:image/jpeg;base64,<actual_data>. We'll need to check if <actual_data> is empty and save  maybe a custom image that says "No Preview Available" for the circuit. This will be required for both create and update methods in simulator_controller.

Ok, I'll try to work on this issue

One more thing to notice:
The bug only occurs when the empty circuit is currently selected. If you save the project while editing other circuits, it works fine even if there is empty circuit in the project.

@SunYiZheXinKe @ankitkataria I would to to work on this issue.

@prajapatgautam1999 already done waiting it to get merged


prisma 2 no longer generates prisma.graphql

Problem
prisma 1 generated "/generated/prisma.graphql" which allowed us to import types into the apollo scheme, prisma 2 no longer generates this file
Solution
have prisma 2 generate the file as well, or is there a better way?

@mitchhankins01 Prisma 2 is no longer just a GraphQL ORM but more abstract ORM. I'd look at Nexus for generating such schemas.


Private link and dns integration at scale with AKS

Hi!
thanks for sharing this document. I tried to integrate this concept with a private AKS cluster from a spoke.
The policy works well, I can see that the private endpoint "kube-apiserver" is linked to private dns zone from the hub, but unlike step 11 I could not see a dns entry inside the dns zone.
It's possible that this concept won't work with private AKS endpoints?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 2bd28f7b-1764-83c9-9d82-d65ba75bcb94
Version Independent ID: e91679fb-9d61-7f89-5cb6-238e2eb91757
Content: Private Link and DNS integration at scale - Cloud Adoption Framework
Content Source: docs/ready/azure-best-practices/private-link-and-dns-integration-at-scale.md
Service: cloud-adoption-framework
Sub-service: ready
GitHub Login: @JefferyMitchell
Microsoft Alias: brblanch

Thanks for reporting - this issue is under review. This is a Microsoft Internal DevOps Bug ID # 411713


Encoding & decoding are no more UTF-8 , but UTF-32

Link(s) to the affected documentation
https://github.com/YaronKoresh/math/blob/72cab7e2d1bef6cb63888c106c1fe0a2e0d3cfdb/README.md#using-stringtobytes
https://github.com/YaronKoresh/math/blob/72cab7e2d1bef6cb63888c106c1fe0a2e0d3cfdb/README.md#using-bytestostring
Description of the problem
The README say that the encoding is UTF-8, but from v3.5.8 that was changed because sometimes the decoded bytes was not encoded back to the same bytes.
The encoding was replaced into UTF-32 (using Code Points).
The readme should have been updated with v3.5.8, but it will be updated for the net releases.

Just for showing an example for two bytes just like that...
let e = new TextEncoder();
let d = new TextDecoder();
let bytes = new Uint8Array([218,82]);
let test = e.encode(d.decode(bytes)) == bytes;
console.log(test); // false


Add option to keep lore from hooked items when adding additional lore

This adds the lore_append_mode option to items, allowing users better control over their lore. This is especially useful for servers using hooks with other plugins, as occasionally you want the items lore from those plugins but in different areas on the item in DM. An example that we ran into was our shop, were we wanted the Oraxen lore to make it easy to update DM when we change items in Oraxen. There are 4 options:
IGNORE: This makes it so that it only takes the hooked items lore
TOP: This adds the DM lore on top
BOTTOM: This adds the DM lore on the bottom
OVERRIDE: Default behavior right now, DM lore overrides hooked item lore.
I also further added ignore_lore as an option, which will remove any lore a hooked item has. This is useful if you just want the custom model data/name, and not the lore. The current workaround is just adding an empty lore line, but that adds a slightly ugly lore line below the name that's not ideal.
Before:

After:

Example:
  kitchen_counter_turn:
    slot: 0
    material: oraxen-kitchen_counter_turn
    lore_append_mode: TOP
    lore:
    - ''
    - '&f$250'

Feedback is welcome and encouraged!

I love the idea but I feel like it is a bit limited. Why have 1 option for appending lore at the bottom of the current lore when you can have an option that lets you: override lore, append at the bottom, append at the top, ignore.
example:
lore-append-mode: 'override'
lore-append-mode: 'bottom'
lore-append-mode: 'top'
lore-append-mode: 'ignore'

If the option is missing, default to override which is what currently happens.

I love the idea but I feel like it is a bit limited. Why have 1 option for appending lore at the bottom of the current lore when you can have an option that lets you: override lore, append at the bottom, append at the top, ignore. example:
lore-append-mode: 'override'
lore-append-mode: 'bottom'
lore-append-mode: 'top'
lore-append-mode: 'ignore'

If the option is missing, default to override which is what currently happens.

Updated the PR with the requested changes :)

Is ignore_lore still needed if lore_append_mode: 'ignore' exists?

Is ignore_lore still needed if lore_append_mode: 'ignore' exists?

Lore append mode ignore is in case a user wants to just add the lore of the hooked item and not the lore of the DeluxeMenu lore (kinda raises the point of, well, if they don't want lore why didn't they just remove the lore in DMs config), but it's an option nonetheless in case users just wish to kind their DM item lore and just have the hooked item lore.

Removed ignore lore option, lore: [] now works as suggested.

Any updates on this?


Help videos

All the screens in the new UI have a help? button where users can watch a video to get help in the process of using the screen.
We need to record, edit, and upload this videos to help users.

Videos that we will need:

[ ] Agent Page
[ ] Sayings Page
[ ] Keyword Page
[ ] Action Page
[ ] Review Page

I added all the currently available videos. These screens are still missing the video:
Actions Responses
Action Slots
Action Webhooks
Review Page
Settings Page

I'll try to record these soon.

Close in favor of #702