Make repository indexer tokenize by camel case selectable

This PR is intended to address #5694. Currently, the repository indexer breaks camel cased identifiers into tokens, so thisMethodName is indexed separately as "this", "method" and "name". Therefore, if one searches for  "thismethodname", it's never found (and very confusing).
This PR adds the REPO_INDEXER_CAMEL_CASE setting flag to the [Indexer] section. If it's true (default), current behaviour continues. If it's set to false, camel cased identifiers are no longer separated into words.
The only important thing to clarify is that it's imperative to delete any previous indexes from REPO_INDEXER_PATH after changing this setting to force the indexes to be rebuilt (with no gitea instance running). Otherwise the indexes will contain mixed criteria. I was pondering about performing the index drop automatically (by adding a flag to some table in the database to check how was it set previously), but I didn't want to pollute the code too much. Another possibility is to add a new cmd to gitea:
gitea drop-repo-indexes
or something like that. You guys tell me. In any case, there seems to be no standard (API) way to drop indexes from bleve other than delete the files manually.
One more thing: regarding the index size, I haven't noticed much difference. A test repository with C code gave me a 26,337,280 byte index file with the default behaviour, and 26,869,760 without camel casing (about 2% increase). Mileage might vary, though.

Codecov Report

Merging #7733 into master will decrease coverage by <.01%.
The diff coverage is 60%.

@@            Coverage Diff             @@
##           master    #7733      +/-   ##
==========================================
- Coverage   41.29%   41.29%   -0.01%
==========================================
  Files         472      472
  Lines       63844    63852       +8
==========================================
+ Hits        26362    26365       +3
- Misses      34043    34048       +5
  Partials     3439     3439

Impacted Files
Coverage Δ

modules/setting/indexer.go
100% <100%> (ø)
:arrow_up:

modules/indexer/repo.go
69.56% <55.55%> (-0.67%)
:arrow_down:

models/repo_list.go
72.08% <0%> (-1.02%)
:arrow_down:

Continue to review full report at Codecov.

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

Does this result in a search for thisCameCaseName still finding it? If so, I don't think we even need the option and make it the default behaviour.

gitea drop-repo-indexes

That sounds like a good command to have. I'd make a gitea rebuild-indexes which could drop both issue and repo indexes at once and rebuild them.

I also think this does not need an option

The reasons I pondered when I added the app.ini option were:

There must  be a number of users that actually rely on the current behaviour, or became used to it.
Changing the tokenizer involve rebuilding the indexes: in large installations this may increase downtime when upgrading, produce a peak in disk I/O, change memory requirements, etc.
There's a slight risk that insufficient disk space would produce problems when rebuilding; perhaps this should be a user-controlled risk.
For those who are already used to this behaviour, it could be in fact useful: searching for "monster" will bring up insertMonsterRecords, updateMonsterRecords and deleteMonsterRecords. Sometimes looking for "insert monster records" brought me up insertMonsterRecords, but it was quite unreliable, I don't know why.

Anyway, if the change becomes mandatory, dropping the old indexes could be a migration step. Should I do it that way?

Rebuilding index would probably be not good idea for migration step, this should probably be done manually

Otherwise I think we should change as current behavior is quite broken

But but.... wouldn't that make upgrading a little more difficult? Perhaps if we add the admin UI option as @silverwind suggested, then the procedure is a little less difficult.

That could probably be different PR

I agree with @lafriks and @silverwind CamelCase is so common and the current behaviour just doesn't work nicely that I think we should make this the default.
The trouble with making this an automatic migration step is precisely that this will take too long to run so I think a rebuild the indexes command would be best. I think the repository indexing architecture isn't necessarily correct - I know that @lunny was working on making it more generic - but I wonder if we need to farm at least some of the index querying out to a different gitea process or other process - similar to how we use a db for querying data.
So to summarize:

Drop the configuration - it doesn't break old indices - and newly indexed things will be better.
Make a command that can rebuild the indices offline.

So, if I get your idea correctly, you propose:

Simplify this PR, leaving only the change in tokenizer options, fixed to do not camel case.
A new PR, adding a "rebuild indexes" for issues and repos to the admin UI.

If you confirm, I'll go that way.

I agree with @lafriks and @silverwind CamelCase is so common and the current behaviour just doesn't work nicely that I think we should make this the default.
The trouble with making this an automatic migration step is precisely that this will take too long to run so I think a rebuild the indexes command would be best. I think the repository indexing architecture isn't necessarily correct - I know that @lunny was working on making it more generic - but I wonder if we need to farm at least some of the index querying out to a different gitea process or other process - similar to how we use a db for querying data.
So to summarize:
* Drop the configuration - it doesn't break old indices - and newly indexed things will be better.

* Make a command that can rebuild the indices offline.

OK, I'll go for the command, then.

There's a problem. If I completely remove the camel case option, previous indexes will break on run time because it's no longer compiled into Gitea (Gitea won't start!). Could I force a library reference? Otherwise I get:
modules/indexer/repo.go:15:2: imported and not used: "github.com/blevesearch/bleve/analysis/token/camelcase"

What's the best way to import:
	"github.com/blevesearch/bleve/analysis/token/camelcase"

without explicitly using it?

I had to retain the following:
import _ "github.com/blevesearch/bleve/analysis/token/camelcase"

Otherwise, if the user wouldn't delete the previous indexes, the instance would not start up. That's because the existing indexes were created with the camel case tokenizer and the bleve library was attempting to instantiate it.
Now, the new effect of this PR is the following:

Existing indexes will continue to break up camel case identifiers into tokens (that's something that's set on creation).
New repositories will have indexes without camel case tokenization.
If the all the indexes are deleted (for rebuild), all new indexes will be created without camel case tokenization.

Hold on! I've found an interesting piece of code:
// InitRepoIndexer initialize repo indexer
func InitRepoIndexer(populateIndexer func() error) {
	var err error
	repoIndexer, err = openIndexer(setting.Indexer.RepoPath, repoIndexerLatestVersion)
...
}

func openIndexer(path string, latestVersion int) (bleve.Index, error) {
...
	if metadata.Version < latestVersion {
		// the indexer is using a previous version, so we should delete it and
		// re-populate
		return nil, os.RemoveAll(path)
	}
...
}

repoIndexerLatestVersion is currently set to 1. Setting it to 2 would force all repository indexes to be rebuilt upon restart. This opens two paths for us:

We go the way we were going; indexes will be rebuilt by the users when they see fit (I'm working on the rebuild-indexes cmd).
We increase repoIndexerLatestVersion to 2 and force automatic rebuild of repo indexes when the user upgrades.

Just so we know all the options.

We could probably increase version, I would say go for it


cmd/go: module work & spam when running 'go doc' on a standard-library package

I'm trying to read about strconv and modules seems to be trying to do work?
$ go doc strconv.ParseInt
go: finding google.golang.org/api v0.0.0-20170327174102-48e49d1645e2
go: finding cloud.google.com/go v0.0.0-20161006024015-b70ccc799b9d
go<EMAIL_ADDRESS>git -c protocol.version=0 fetch --unshallow -f https://code.googlesource.com/google-api-go-client refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /home/bradfitz/pkg/mod/cache/vcs/9e62a95b0409d58bc0130bae299bdffbc7b7e74f3abe1ecf897474cc474b8bc0: exit status 128:
        fatal: remote error:

        Invalid authentication credentials.

        Please generate a new identifier:
          https://code.googlesource.com/new-password
go<EMAIL_ADDRESS>git -c protocol.version=0 fetch --unshallow -f https://code.googlesource.com/gocloud refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /home/bradfitz/pkg/mod/cache/vcs/b0e27935eb83c1d7843713bafab507e95768b550f0552cb42d9f41e5fd9c8375: exit status 128:
        fatal: remote error:

        Invalid authentication credentials.

        Please generate a new identifier:
          https://code.googlesource.com/new-password
go: error loading module requirements
func ParseInt(s string, base int, bitSize int) (i int64, err error)
    ParseInt interprets a string s in the given base (0, 2 to 36) and bit size
    (0 to 64) and returns the corresponding value i.

    If base == 0, the base is implied by the string's prefix: base 2 for "0b",
    base 8 for "0" or "0o", base 16 for "0x", and base 10 otherwise. If base is
    below 0, is 1, or is above 36, an error is returned.

    The bitSize argument specifies the integer type that the result must fit
    into. Bit sizes 0, 8, 16, 32, and 64 correspond to int, int8, int16, int32,
    and int64. If bitSize is below 0 or above 64, an error is returned.

    The errors that ParseInt returns have concrete type *NumError and include
    err.Num = s. If s is empty or contains invalid digits, err.Err = ErrSyntax
    and the returned value is 0; if the value corresponding to s cannot be
    represented by a signed integer of the given size, err.Err = ErrRange and
    the returned value is the maximum magnitude integer of the appropriate
    bitSize and sign.

/cc @bcmills @jayconrod

Related: https://github.com/golang/go/issues/29452

See also #28992.

Where did you execute go doc, and what version of the go command were you using?

I'm guessing that this is another side-effect of loading the build list eagerly, but switching it to lazy loading will require quite a bit of refactoring. (I've been hoping to do that for 1.13, but with the freeze looming it's not looking very likely.)

dev:pk-web $ go version
go version devel +ff3ae455d9 Wed Apr 17 16:36:56 2019 +0000 linux/amd64
dev:pk-web $ pwd
/home/bradfitz/src/perkeep.org/website/pk-web
dev:pk-web $ go doc strconv Atoi
go: finding google.golang.org/api v0.0.0-20170327174102-48e49d1645e2
go: finding cloud.google.com/go v0.0.0-20161006024015-b70ccc799b9d
go<EMAIL_ADDRESS>git -c protocol.version=0 fetch --unshallow -f https://code.googlesource.com/gocloud refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /home/bradfitz/pkg/mod/cache/vcs/b0e27935eb83c1d7843713bafab507e95768b550f0552cb42d9f41e5fd9c8375: exit status 128:
        fatal: remote error:

        Invalid authentication credentials.

        Please generate a new identifier:
          https://code.googlesource.com/new-password
func Atoi(s string) (int, error)
    Atoi is equivalent to ParseInt(s, 10, 0), converted to type int.

If you can't fix this before Go 1.13, I think we should special case the std packages in cmd/doc. Goimports does. Std is super common & should be fast..
In fact, we should do that regardless.

CC @robpike and @mvdan for cmd/doc.
@dmitshur is looking into #28992.

@bradfitz: Define 'special case'. That is, what do you want the command to do?

@robpike, if I run something like:
$ go doc bufio.NewScanner
$ go doc net/http

It should recognize that net/http and bufio are std packages and not invoke the go/packages code that then downloads half of github looking for them, complete with authentication errors along the way.
In goimports we have this auto-generated file that gives goimports that info for what is known to be in std (and thus in $GOROOT): https://github.com/golang/tools/blob/master/imports/zstdlib.go

I can do that, but I can't help thinking there is something much deeper that needs fixing and papering it over is a mistake.

Just a drive-by thought - does go doc strconv parseint have the same issue? It should be much easier for go doc to understand that there isn't any domain or remote host involved in resolving that query, whereas go doc foo.bar is a harder problem.
For example, what should go doc strconv.com do? Perhaps there's a symbol in strconv that happens to match com, or perhaps someone is actually hosting a Go package there. The only solution I can see in this scenario is a whitelist, like @bradfitz suggested. Or to do go doc strconv com, like I suggested above.

I believe this has been fixed. Please reopen if not.


Add alternate url for bazel binaries

release.bazel.build server went down for a while today while I was working on https://github.com/bazelbuild/rules_nodejs/pull/952 so I added this to get around the problem

@gregmagolan thanks so much for your contribution!


alluxio.user.file.passive.cache.enabled=true not work

Alluxio Version:
What version of Alluxio are you using?
tag v2.0.0
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior (as minimally and precisely as possible)
Expected behavior
A clear and concise description of what you expected to happen.
Urgency
Describe the impact and urgency of the bug.
Additional context
Add any other context about the problem here.

alluxio-fuse as client

Hi @zrss Thanks for reporting this! Could you fill out all the sections of the bug report?

thx for the reply.
alluxio cluster capacity
[root@train-acw7y alluxio-release]# kubectl exec -ti alluxio-master-0 bash
Defaulting container name to alluxio-master.
Use 'kubectl describe pod/alluxio-master-0 -n default' to see all of the containers in this pod.
bash-4.4# /opt/alluxio/bin/alluxio fsadmin report capacity
Capacity information for all workers:
    Total Capacity: 5.08TB
        Tier: MEM  Size: 80.00GB
        Tier: SSD  Size: 5120.00GB
    Used Capacity: 339B
        Tier: MEM  Size: 339B
        Tier: SSD  Size: 0B
    Used Percentage: 0%
    Free Percentage: 100%

Worker Name      Last Heartbeat   Storage       Total            MEM           SSD
<IP_ADDRESS>     0                capacity      1040.00GB        16.00GB       1024.00GB
                                  used          0B (0%)          0B            0B
<IP_ADDRESS>     0                capacity      1040.00GB        16.00GB       1024.00GB
                                  used          0B (0%)          0B            0B
<IP_ADDRESS>    0                capacity      1040.00GB        16.00GB       1024.00GB
                                  used          0B (0%)          0B            0B
<IP_ADDRESS>     0                capacity      1040.00GB        16.00GB       1024.00GB
                                  used          0B (0%)          0B            0B
<IP_ADDRESS>     0                capacity      1040.00GB        16.00GB       1024.00GB
                                  used          339B (0%)        339B          0B
bash-4.4#

and enable the passive.cache, and we know the data is cached in the <IP_ADDRESS> node, but the used is still not change when i get the data from <IP_ADDRESS>
# <IP_ADDRESS>

[root@train-acw7y alluxio-release]# time cat /mnt/alluxio-root-fs/jpc-testxxx/xxx/metric.json
xxx
real	0m0.010s
user	0m0.000s
sys	0m0.001s

# <IP_ADDRESS>
[root@train-rd9in ~]# time cat /mnt/alluxio-root-fs/jpc-testxxx/xxx/metric.json
xxx
real	0m0.012s
user	0m0.000s
sys	0m0.002s

and the metric report
bash-4.4# /opt/alluxio/bin/alluxio fsadmin report metrics
Total IO:
    Short-circuit Read                                         0B
    Short-circuit Read (Domain Socket)                    10.59KB
    From Remote Instances                                  7.28KB
    Under Filesystem Read                                      0B
    Alluxio Write                                              0B
    Alluxio Write (Domain Socket)                              0B
    Under Filesystem Write                                     0B

Total IO Throughput (Last Minute):
    Short-circuit Read                                         0B
    Short-circuit Read (Domain Socket)                         4B
    From Remote Instances                                      4B
    Under Filesystem Read                                      0B
    Alluxio Write                                              0B
    Alluxio Write (Domain Socket)                              0B
    Under Filesystem Write                                     0B

Cache Hit Rate (Percentage):
    Alluxio Local                                            0.00
    Alluxio Remote                                         100.00
    Miss                                                     0.00

maybe related to # 9459

enable the debug log level for all
./opt/alluxio/bin/alluxio logLevel --logName=alluxio --level=DEBUG

and find the the local worker (<IP_ADDRESS>) receive any read request
2019-08-02 03:46:37,934 DEBUG TieredBlockStore - updatePinnedInodes: inodes=[]
2019-08-02 03:46:38,934 DEBUG TieredBlockStore - updatePinnedInodes: inodes=[]
2019-08-02 03:46:39,934 DEBUG TieredBlockStore - updatePinnedInodes: inodes=[]
2019-08-02 03:46:40,933 DEBUG TieredBlockStore - updatePinnedInodes: inodes=[]
2019-08-02 03:46:41,937 DEBUG TieredBlockStore - updatePinnedInodes: inodes=[]
2019-08-02 03:46:42,936 DEBUG TieredBlockStore - updatePinnedInodes: inodes=[]
2019-08-02 03:46:43,937 DEBUG TieredBlockStore - updatePinnedInodes: inodes=[]
2019-08-02 03:46:44,937 DEBUG TieredBlockStore - updatePinnedInodes: inodes=[]
2019-08-02 03:46:45,937 DEBUG TieredBlockStore - updatePinnedInodes: inodes=[]
2019-08-02 03:46:46,937 DEBUG TieredBlockStore - updatePinnedInodes: inodes=[]
2019-08-02 03:46:47,936 DEBUG TieredBlockStore - updatePinnedInodes: inodes=[]

but the remote node <IP_ADDRESS> does receive it
2019-08-02 03:46:37,386 DEBUG AbstractReadHandler - Received read request block_id: 16777216
offset: 0
length: 339
promote: true
chunk_size: 1048576
open_ufs_block_options {
  ufs_path: "obs://jpc-test/xxx/metric.json"
  offset_in_file: 0
  block_size: 339
  maxUfsReadConcurrency:<PHONE_NUMBER>
  mountId:<PHONE_NUMBER>63427728
  no_cache: false
}
.
2019-08-02 03:46:37,387 DEBUG TieredBlockStore - lockBlock: sessionId=5692228211491981976, blockId=16777216
2019-08-02 03:46:37,388 DEBUG TieredBlockStore - getBlockMeta: sessionId=5692228211491981976, blockId=16777216, lockId=256
2019-08-02 03:46:37,388 DEBUG TieredBlockStore - unlockBlock: lockId=256
2019-08-02 03:46:37,388 DEBUG TieredBlockStore - lockBlockNoException: sessionId=5692228211491981976, blockId=16777216
2019-08-02 03:46:37,388 DEBUG TieredBlockStore - getBlockReader: sessionId=5692228211491981976, blockId=16777216, lockId=257
2019-08-02 03:46:37,388 DEBUG TieredBlockStore - accessBlock: sessionId=5692228211491981976, blockId=16777216
2019-08-02 03:46:37,388 DEBUG TieredBlockStore - unlockBlock: sessionId=5692228211491981976, blockId=16777216
2019-08-02 03:46:37,392 DEBUG BlockWorkerImpl - Enter: asyncCache: request=block_id: 16777216
source_host: "<IP_ADDRESS>"
source_port: 29999
open_ufs_block_options {
  ufs_path: "obs://jpc-test/xxx/metric.json"
  offset_in_file: 0
  block_size: 339
  maxUfsReadConcurrency:<PHONE_NUMBER>
  mountId:<PHONE_NUMBER>63427728
  no_cache: false
}
length: 339

2019-08-02 03:46:37,392 DEBUG BlockWorkerImpl - Exit (OK): asyncCache: request=block_id: 16777216
source_host: "<IP_ADDRESS>"
source_port: 29999
open_ufs_block_options {
  ufs_path: "obs://jpc-test/xxx/metric.json"
  offset_in_file: 0
  block_size: 339
  maxUfsReadConcurrency:<PHONE_NUMBER>
  mountId:<PHONE_NUMBER>63427728
  no_cache: false
}
length: 339

@madanadit looks like something local worker is not preferred for some reason. Is there any parameters to help the k8s containers?

@apc999 will have to debug this further. the fuse container and the worker container would have different hostnames in k8s.
based on this report, my guess is that this might be a code issue and we might need to change the logic in the alluxio fuse client to map container ip to physical host ip ( = worker hostname) when choosing which worker to read from. what could be happening is that the client thinks there is no local worker and ends up with a remote read

@madanadit  SG. I updated the priority and shoot for an investigation and possibly a fix in 2.1 release

thx for the reply, and i also notice that the Alluxio Local in metric is always 0, even though i cat the data in the local node <IP_ADDRESS>

@madanadit, thx for pointing this out, i set the host ip for alluxio-fuse container by (PR: #9635 )
          env:
          - name: ALLUXIO_CLIENT_HOSTNAME
            valueFrom:
              fieldRef:
                fieldPath: status.hostIP
          - name: ALLUXIO_JAVA_OPTS
            value: " -Dalluxio.user.hostname=$(ALLUXIO_CLIENT_HOSTNAME) "

it works as expect now

Thanks @zrss for pointing this out.


appstream: 0.12.2 -> 0.12.3

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/appstream/versions.
meta.description for appstream is: '"Software metadata handling library"'.
Compare changes on GitHub

Checks done (click to expand)

built on NixOS
/nix/store/12y7s4d6spjn1ghb5jfrp6f7da9ylair-appstream-0.12.3/bin/appstreamcli passed the binary check.
1 of 1 passed binary check by having a zero exit code.
0 of 1 passed binary check by having the new version present in output.
found 0.12.3 with grep in /nix/store/12y7s4d6spjn1ghb5jfrp6f7da9ylair-appstream-0.12.3
directory tree listing: https://gist.github.com/704655d2e9ce237b299fc84d21c10c30
du listing: https://gist.github.com/0fdc0e510a6d5cc0ca1de04a769180a5

Outpath report (click to expand)

Outpath difference report
9 total rebuild paths
3 package rebuilds
3 x86_64-linux rebuilds
3 i686-linux rebuilds
0 x86_64-darwin rebuilds
3 aarch64-linux rebuilds
First ten rebuilds by attrpath
appstream
appstream-qt
meteo

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/12y7s4d6spjn1ghb5jfrp6f7da9ylair-appstream-0.12.3 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
Or, build yourself:
nix-build -A appstream https://github.com/r-ryantm/nixpkgs/archive/f72bc25f79b91eaed614e483dada379aa176f9ae.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/12y7s4d6spjn1ghb5jfrp6f7da9ylair-appstream-0.12.3
ls -la /nix/store/12y7s4d6spjn1ghb5jfrp6f7da9ylair-appstream-0.12.3/bin

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: appstream
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Attempted: appstream
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/12y7s4d6spjn1ghb5jfrp6f7da9ylair-appstream-0.12.3
shrinking /nix/store/12y7s4d6spjn1ghb5jfrp6f7da9ylair-appstream-0.12.3/lib/libappstream.so.0.12.2
shrinking /nix/store/12y7s4d6spjn1ghb5jfrp6f7da9ylair-appstream-0.12.3/bin/appstreamcli
gzipping man pages under /nix/store/12y7s4d6spjn1ghb5jfrp6f7da9ylair-appstream-0.12.3/share/man/
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/12y7s4d6spjn1ghb5jfrp6f7da9ylair-appstream-0.12.3/lib  /nix/store/12y7s4d6spjn1ghb5jfrp6f7da9ylair-appstream-0.12.3/bin
patching script interpreter paths in /nix/store/12y7s4d6spjn1ghb5jfrp6f7da9ylair-appstream-0.12.3
checking for references to /build in /nix/store/12y7s4d6spjn1ghb5jfrp6f7da9ylair-appstream-0.12.3...
/nix/store/12y7s4d6spjn1ghb5jfrp6f7da9ylair-appstream-0.12.3

Success on aarch64-linux (full log)
Attempted: appstream
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/n9v2zxh7wgg8srwvrf1qmwjysi8yvww2-appstream-0.12.3
shrinking /nix/store/n9v2zxh7wgg8srwvrf1qmwjysi8yvww2-appstream-0.12.3/bin/appstreamcli
shrinking /nix/store/n9v2zxh7wgg8srwvrf1qmwjysi8yvww2-appstream-0.12.3/lib/libappstream.so.0.12.2
gzipping man pages under /nix/store/n9v2zxh7wgg8srwvrf1qmwjysi8yvww2-appstream-0.12.3/share/man/
strip is /nix/store/p9akxn2sfy4wkhqdqa3li97pc6jaz3r1-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/n9v2zxh7wgg8srwvrf1qmwjysi8yvww2-appstream-0.12.3/lib  /nix/store/n9v2zxh7wgg8srwvrf1qmwjysi8yvww2-appstream-0.12.3/bin
patching script interpreter paths in /nix/store/n9v2zxh7wgg8srwvrf1qmwjysi8yvww2-appstream-0.12.3
checking for references to /build in /nix/store/n9v2zxh7wgg8srwvrf1qmwjysi8yvww2-appstream-0.12.3...
/nix/store/n9v2zxh7wgg8srwvrf1qmwjysi8yvww2-appstream-0.12.3

@GrahamcOfBorg build appstream-qt meteo

Success on aarch64-linux (full log)
Attempted: appstream-qt, meteo
Partial log (click to expand)
shrinking RPATHs of ELF executables and libraries in /nix/store/if84hj1hc38zwdl71a1zry6w1j5anqwc-appstream-qt-0.12.3
shrinking /nix/store/if84hj1hc38zwdl71a1zry6w1j5anqwc-appstream-qt-0.12.3/lib/libAppStreamQt.so.0.12.2
strip is /nix/store/p9akxn2sfy4wkhqdqa3li97pc6jaz3r1-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/if84hj1hc38zwdl71a1zry6w1j5anqwc-appstream-qt-0.12.3/lib
patching script interpreter paths in /nix/store/if84hj1hc38zwdl71a1zry6w1j5anqwc-appstream-qt-0.12.3
checking for references to /build in /nix/store/if84hj1hc38zwdl71a1zry6w1j5anqwc-appstream-qt-0.12.3...
postPatchMkspecs
postPatchMkspecs
/nix/store/if84hj1hc38zwdl71a1zry6w1j5anqwc-appstream-qt-0.12.3
/nix/store/v3y4b0w10j09zljxmi9jfz2bdc27r23b-meteo-0.8.5

Success on x86_64-linux (full log)
Attempted: appstream-qt, meteo
Partial log (click to expand)
post-installation fixup
Wrapping program /nix/store/2g0x99r3x3g57r9k9z4m8xygh6asj4nf-meteo-0.8.5/bin/com.gitlab.bitseater.meteo
shrinking RPATHs of ELF executables and libraries in /nix/store/2g0x99r3x3g57r9k9z4m8xygh6asj4nf-meteo-0.8.5
shrinking /nix/store/2g0x99r3x3g57r9k9z4m8xygh6asj4nf-meteo-0.8.5/bin/.com.gitlab.bitseater.meteo-wrapped
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/2g0x99r3x3g57r9k9z4m8xygh6asj4nf-meteo-0.8.5/bin
patching script interpreter paths in /nix/store/2g0x99r3x3g57r9k9z4m8xygh6asj4nf-meteo-0.8.5
checking for references to /build in /nix/store/2g0x99r3x3g57r9k9z4m8xygh6asj4nf-meteo-0.8.5...
/nix/store/py4vqnqa9fvfy3khhy8cq5wkwkrqjxka-appstream-qt-0.12.3
/nix/store/2g0x99r3x3g57r9k9z4m8xygh6asj4nf-meteo-0.8.5

cc @Infinisil (since you're making your rounds)

Thanks :)


fix: NetworkServer.Destroy: add warning if called on client without server/host to make this more obvious, instead of destroying something locally that doesn't persist on the server

TODO run our unit tests etc

Why don't we throw an exception? Is there any case where calling NetworkServer.Destroy while not a server is valid/expected?

Kind of like calling [Server] on a client.
Don't need to scare users, just let them know gently :)


Catch failed billing detail load

This PR addresses the most urgent aspect of #669 by preventing the entire Dashboard from just redirecting to an error screen when the billing detail fails to load.


feat: Add notebook for working with various data structures in Gemini Function Calling

Description
This PR adds a notebook for Gemini Function Calling with examples on using various data structures and schemas.

[x] Follow the CONTRIBUTING Guide.
[x] You are listed as the author in your notebook or README file.

[x] Your account is listed in CODEOWNERS for the file(s).

[x] Make your Pull Request title in the https://www.conventionalcommits.org/ specification.
[x] Ensure the tests and linter pass (Run nox -s format from the repository root to format).
[x] Appropriate docs were updated (if necessary)

Minor suggestions.
These examples are great! As a future development, it could be useful to have an example using an actual API call. (Maybe something free/easy like a Weather API, IDK?)

Thanks for reviewing! Normally I would include the steps to make an API call, but developers have been getting stuck at this step since we have simplified & flat data structures the Function Calling docs that we're adding more to. So I wanted to get these common schemas out there in the meantime, and most of these schemas target proprietary APIs for business systems and would look quite different targeting open/free APIs such as weather. But something I will keep in mind for future iterations of this notebook!


fix for unencrypted rooms.

unencrypted rooms fail because is_enc is undefined, resulting in "if is_enc" throwing an error on (old) line 168.

Hi, sorry, why do you think it's required? It does not change anything.


axios call to localhost splunk 404

Hi I am using react.js and was wanting to use axios to make http request to the splunk rest api. I can curl my own local splunk with
curl  -k https://localhost:8089/services/auth/login --data-urlencode username=admin --data-urlencode password=password
But when I try to do
`axios.post({
url: 'https://localhost:8089/services/auth/login',
data: {
username: 'username',
password: 'password'
}
})
    .then((response) => {
       console.log(response);
     })
     .catch((error) => {
       console.log(error);
       if (error.response) {
         console.log(error.response.data);
         console.log(error.response.status);
         console.log(error.response.headers);

       }
       else if (error.request) {
         console.log(error.request);
       }
       else {
         console.log('Error', error.message);
       }
       console.log(error.config);
     })`

I get a 404 error.
I am using free splunk when I am trying to connect.
Is the 404 error because of something to do with CORS?
I am also interested in maybe using the splunk javascript sdk but when I read about the related issue(https://github.com/splunk/splunk-sdk-javascript/issues/61) I have no idea where to start and how to use browserify.
Any help is much appreciated thanks!

Hi @hgrbble1, you should use the auth property instead of data to use basic auth with axios.
The 404 seems a bit odd, but is most likely related to CORS.
Click the link in my comment on #61, I have a short example of how to run browserify.

I can get a response back from the https call in postman when I turn off ssl. When ssl is turned on I can not get access to it. I am using free splunk on my laptop.

This issue doesn't seem related to the SDK according to you previous comment, please re-open if you find that the issue is related to the SDK specifically.


Container Specific Resolv.conf

Hello,
I'm hoping you can help me with a specific problem I'm encountering with my deis container. I am using a Dockerfile deploy to deis based on a centos6 container. My application relies on the search domain of the container to properly find the dns names. How do I update the resolv.conf of my container without affecting the core os resolv.conf?
TYIA for your help!

This is what I got from Docker's documentation:

Regarding DNS settings, in the absence of the --dns=IP_ADDRESS..., --dns-search=DOMAIN..., or --dns-opt=OPTION... options, Docker makes each container’s /etc/resolv.conf look like the /etc/resolv.conf of the host machine (where the docker daemon runs). When creating the container’s /etc/resolv.conf, the daemon filters out all localhost IP address nameserver entries from the host’s original file

So for v1, I know we don't supply any way to add any additional flags to the docker run operation. You will need to modify your host's resolv.conf in order for changes to occur within the container, or create a patch for Deis to plug into the container's dns resolver with an option flag in the fleet manifest file.
When you mean by relying on the search domain of the container, would it be easier to use the hostname instead? Perhaps there's an easier way to resolve your issue.

I may end up working around the problem by appending the FQDN to all of my configuration options, but I'd also like to contribute to deis by adding a feature that allows options to be passed to the docker run operation. Do you already have a design on how those options would be specified when the application is built using a Dockerfile?

I'd also like to contribute to deis by adding a feature that allows options to be passed to the docker run operation.

We're in a transition period right now between Deis v1.x and an upcoming Deis v2 release.  We're fixing bugs in the 1.x branch to create an LTS release (long-term support).  For the most part, we're not contemplating adding new features there.
With respect to v2, Deis pivots a bit to run atop Kubernetes.  They way this could be achieved in v2 on k8s is definitely different from how it might have been achieved in the v1.x days.  At any rate, this has not been speced out.
All that being said, I do believe that what you're attempting runs counter to the principles described by 12 factor and Deis caters to 12factor apps.  Specifically I believe this violates factor no. 3.  By relying on configuration (i.e. non-fully qualified hostnames) that is only complete when considered in the context of the host (even though the host is a container in this instance), the application has been made less portable.
imho, the workaround you considered is actually the right way to address this.


Introduce an implementation that calculates the crc without using a lookup table

This PR introduces an implementation for the Crc width 32, that calculates the crc without using a lookup table.
It also adds an explicit choice for the Bytewise implementation, which is the current default behaviour for Crc<u32>
Additionally it reorganizes the modules a little more neatly for the crc32 instead of having crc32, crc32_fast, ... it's now:
src
├── crc32
    ├── bytewise.rs
    ├── default.rs
    ├── nolookup.rs
    └── slice16.rs

This will allow easily and (invisibly to users) changing the default implementation.
This should also be used as the template for providing Nolookup<> and Bytewise<> for the other widths.
Benches
crc32/nolookup          time:   [137.87 µs 137.98 µs 138.10 µs]
                        thrpt:  [113.14 MiB/s 113.24 MiB/s 113.33 MiB/s]

crc32/bytewise          time:   [29.316 µs 29.330 µs 29.345 µs]
                        thrpt:  [532.46 MiB/s 532.74 MiB/s 532.98 MiB/s]

crc32/slice16           time:   [4.5155 µs 4.5248 µs 4.5324 µs]
                        thrpt:  [3.3666 GiB/s 3.3723 GiB/s 3.3792 GiB/s]+

Thanks for submitting the PR! I'm a bit swamped this week, but I'll try to review this over the next couple days.

Don't worry if it takes longer. I know how it can be sometimes :)

Overall, the changes LGTM. Just have some minor nitpicks.

Apart from the crc32.rs -> mod.rs rename this LGTM.
Introduce an implementation that calculates the crc32 without using a lookup table would probably be a good squashed commit message

I'll make some more PRs for the other widths. Do you prefer the same separation for slice16/notable impls or should I do one PR per width that adds both slice16/notable at once?

I'll make some more PRs for the other widths. Do you prefer the same separation for slice16/notable impls or should I do one PR per width that adds both slice16/notable at once?

Up to you, whatever's easier.


Static pages?

Hi @vjeantet
Thanks a lot for porting this theme from Ghost to Hugo. I am a great fan of static pages, Go and the default Casper theme from Ghost, so it's a great combo.
I have made some tests to migrate my page but I stumbled into some issues. First of is the problem that I don't know how to create normal static pages that are not shown as normal posts? Is that possible? I tried to just generate a post directly inside the "content" folder but the CSS is wrong and the text is not centered.
It would be great to be able to create static pages that are not posts, like "about", etc.
Thanks a lot and keep up the good work! :+1:
Regards,
Benjamin

Hi Benjamin, I'll have a look on this issue

Thanks a lot @vjeantet !

Hello @martensson , i tried to reproduce the bug you describe, but my text is centered, can you send me an example .md file to put directly into content folder ?

Hi @vjeantet, thanks for coming back and sorry for the late answer. I actually retried again now and I can't seem to recreate it myself either.
And regarding the static pages a quick fix was to just add the following to the themes index.html:
range $index, $page := (where .Paginator.Pages "Section" "post" )
That way they are not shown in the normal posts list.

good catch, i will use your snippet


Added Theo Markovic to the Contributors list

@tmarkovic, I'm quite elated about your PR. I wanna evolve this project to addresses various problems faced by first-time contributors. I'd love to learn about your journey in open source community, the problems, pain points you had etc.
Could you explain how you felt when you went through the tutorial, made a PR and learned that I merged it?


Low Accuracy with static image on TFLite demo model

Please go to Stack Overflow for help and support:
https://stackoverflow.com/questions/tagged/tensorflow
If you open a GitHub issue, here is our policy:

It must be a bug, a feature request, or a significant problem with documentation (for small docs fixes please send a PR instead).
The form below must be filled out.
It shouldn't be a TensorBoard issue. Those go here.

Here's why we have that policy: TensorFlow developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals. GitHub also notifies thousands of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Stack Overflow.

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 16.04
TensorFlow installed from (source or binary): Binary(PIP install)
TensorFlow version (use command below): 1.7.0
Python version: 3.6.3
Bazel version (if compiling from source): NA
GCC/Compiler version (if compiling from source): Na
CUDA/cuDNN version: NA
GPU model and memory: NA
Exact command to reproduce: NA

You can collect some of this information using our environment capture script:
https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh
You can obtain the TensorFlow version with
python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"
Describe the problem
I've implemented the transfer learning example for mobilenet and deployed the Android app. The classification was happening perfectly with a good accuracy for the constant stream of images. Later I modified the app to pick up a file from storage or click an image, save to storage and then classify. When this is implemented, the accuracy has dropped acutely to the range 0f 0.01 - 0.3 for any of the Flower classes or the general mobilenet model with the 1500 classes. I've implemented the 224 x 224 version of the model. Below are the steps

Create a basic camera app
Take a picture and save it to storage
The uri of the image is saved and then a drawable is created from the URI.
This drawable is then converted to a bitmap.
The bitmap size is transformed to 224 x 224 to match the input of the Mobile Net model
This transformed bitmap is sent for classification to the pre-implemented class from the sample.

Link to my question on stack overflow:
https://stackoverflow.com/questions/49954439/low-accuracy-with-static-image-on-tflite-demo-model
Source code / logs
private static Bitmap getResizedBitmap(Bitmap bm, int newWidth, int newHeight, boolean isNecessaryToKeepOrig) {
        int width = bm.getWidth();
        int height = bm.getHeight();
        float scaleWidth = ((float) newWidth) / width;
        float scaleHeight = ((float) newHeight) / height;
        // CREATE A MATRIX FOR THE MANIPULATION
        Matrix matrix = new Matrix();
        // RESIZE THE BIT MAP
        matrix.postScale(scaleWidth, scaleHeight);

        // "RECREATE" THE NEW BITMAP
        Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false);
        if(!isNecessaryToKeepOrig){
            bm.recycle();
        }
        return resizedBitmap;
    }

Hi @vijaysaimutyala . I face the same problem right now and I'm not sure what I'm supposed to do. In your case, do you mean you change the image size in the Android or the model training? Desperate for help...Thanks in advance.


get a weird figure following the notebook named Bone marrow fates

Hi!. I try to show the differentiation trajectory of HSC followed the tutorial.  After PCA, diffusion, palantir, I got a unexpected figure.

The branch tip cells looks like a string. I try to add the components of PCA as the input of diffusion.  I also try to reduce the number of progenitor cells. But Both don't work.  Can you give me some advices? Thanks a lot.
pca_projections =pd.DataFrame(adata.obsm["X_pca"],index=adata.obs_names)  dm_res = palantir.utils.run_diffusion_maps(pca_projections, n_components=40, knn=30) ms_data = palantir.utils.determine_multiscale_space(dm_res, #n_eigs=4 adata.obsm["X_palantir"]=ms_data.values sc.pp.neighbors(adata,n_neighbors=25,use_rep="X_palantir") adata.obsm["X_pca2d"]=adata.obsm["X_pca"][:,:2] sc.tl.draw_graph(adata,init_pos='X_pca2d') sc.pl.draw_graph(adata,color="celltype")

Are you using ForceAtlas2 algorithm? I think that sc.tl.draw_graph uses another one if it is not installed which can lead to such overlapping branches. FA2 seems to be not well maintained these days unfortunately, I would recommend to try out instead openTSNE package, and use a high exaggeration parameter (around 2 to 4).
Some dataset also do not requires diffusion maps as intermediate step and can produce well connected embeddings with clear branch separation with FA2/openTSNE.


feat(snapshot): add snapshot resources and operation barebones

Adds the snapshot resources map elements, and some basic resource helpers and operations barebones.

bors merge


EXIF_TAG_USER_COMMENT bug

In continuation of https://github.com/JuliaImages/ExifViewer.jl/pull/25, some bugs are observed:
using ExifViewer, TestImages
img = testimage("mandril")
tags = Dict("EXIF_TAG_USER_COMMENT" => "foo 12345")  # this comment is plain ASCII, so it should work ?
write_tags("test.jpg"; img, tags)
for (k, v) in read_tags("test.jpg")
  println("$k=$v")  # missing `EXIF_TAG_USER_COMMENT`
end

EXIF_TAG_COLOR_SPACE=Uncalibrated
EXIF_TAG_COMPONENTS_CONFIGURATION=Y Cb Cr -
EXIF_TAG_FLASH_PIX_VERSION=FlashPix Version 1.0
EXIF_TAG_Y_RESOLUTION=72
EXIF_TAG_EXIF_VERSION=Exif Version 2.1
EXIF_TAG_RESOLUTION_UNIT=Inch
EXIF_TAG_YCBCR_POSITIONING=Centered
EXIF_TAG_X_RESOLUTION=72

# ==> on current `main` branch, missing `EXIF_TAG_USER_COMMENT`

Could this be GC.@preserve related ?
Also missing on the command line, so this is a write issue:
$ exif test.jpg
EXIF tags in 'test.jpg' ('Intel' byte order):
--------------------+----------------------------------------------------------
Tag                 |Value
--------------------+----------------------------------------------------------
X-Resolution        |72
Y-Resolution        |72
Resolution Unit     |Inch
YCbCr Positioning   |Centered
Exif Version        |Exif Version 2.1
Components Configura|Y Cb Cr -
FlashPixVersion     |FlashPix Version 1.0
Color Space         |Uncalibrated
--------------------+----------------------------------------------------------

There is a high chance it's related to GC.@preserve, I had also previously noticed that I made entries and they weren't there in output. I had been told about it @gnimuc to make sure those checks(GC.@preserve) are there but my understanding of GC is limited. @johnnychen94 could you guide on what I am missing here?

I modify the test in write.jl a little bit:
    path = joinpath(tempdir(), "tmp.jpg")
    write_tags(path; img, tags)
    # currently only .jpg supported, different value of these were already checked
    # case where key in dict is not found needs to be handled,
    # support level issue needs to be handled
    @show "Read from file:" read_tags(path)
    @show "Original:" tags
    @test read_tags(path) == tags
    rm(path)

Results:
     Testing Running tests...
"Read from file:" = "Read from file:"
read_tags(path) = Dict("EXIF_TAG_FLASH" => "Flash fired", "EXIF_TAG_CUSTOM_RENDERED" => "Normal process", "EXIF_TAG_EXPOSURE_MODE" => "Auto exposure", "EXIF_TAG_SATURATION" => "Normal", "EXIF_TAG_YCBCR_POSITIONING" => "Co-sited", "EXIF_TAG_FNUMBER" => "f/2.8", "EXIF_TAG_SENSING_METHOD" => "One-chip color area sensor", "EXIF_TAG_PLANAR_CONFIGURATION" => "Planar format", "EXIF_TAG_FLASH_PIX_VERSION" => "FlashPix Version 1.0", "EXIF_TAG_ORIENTATION" => "Top-left", "EXIF_TAG_EXIF_VERSION" => "Exif Version 2.1", "EXIF_TAG_FOCAL_PLANE_Y_RESOLUTION" => "4.5", "EXIF_TAG_SHARPNESS" => "Normal", "EXIF_TAG_RESOLUTION_UNIT" => "Centimeter", "EXIF_TAG_COMPRESSION" => "JPEG compression", "EXIF_TAG_MODEL" => "R70", "EXIF_TAG_PIXEL_X_DIMENSION" => "2", "EXIF_TAG_USER_COMMENT" => "Dummy comment", "EXIF_TAG_COLOR_SPACE" => "sRGB", "EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT" => "Inch", "EXIF_TAG_COMPONENTS_CONFIGURATION" => "Y Cb Cr -", "EXIF_TAG_GAIN_CONTROL" => "Normal", "EXIF_TAG_PHOTOMETRIC_INTERPRETATION" => "CieLAB", "EXIF_TAG_Y_RESOLUTION" => "300", "EXIF_TAG_ARTIST" => "Ashwani", "EXIF_TAG_PIXEL_Y_DIMENSION" => "2", "EXIF_TAG_SCENE_CAPTURE_TYPE" => "Standard", "EXIF_TAG_FOCAL_PLANE_X_RESOLUTION" => "4.5", "EXIF_TAG_SUBJECT_DISTANCE_RANGE" => "Close view", "EXIF_TAG_METERING_MODE" => "Pattern", "EXIF_TAG_MAKE" => "Canon", "EXIF_TAG_CONTRAST" => "Normal", "EXIF_TAG_X_RESOLUTION" => "300", "EXIF_TAG_WHITE_BALANCE" => "Auto white balance")
"Original:" = "Original:"
tags = Dict("EXIF_TAG_FLASH" => "Flash fired", "EXIF_TAG_CUSTOM_RENDERED" => "Normal process", "EXIF_TAG_EXPOSURE_MODE" => "Auto exposure", "EXIF_TAG_SATURATION" => "Normal", "EXIF_TAG_YCBCR_POSITIONING" => "Co-sited", "EXIF_TAG_FNUMBER" => "f/2.8", "EXIF_TAG_SENSING_METHOD" => "One-chip color area sensor", "EXIF_TAG_PLANAR_CONFIGURATION" => "Planar format", "EXIF_TAG_FLASH_PIX_VERSION" => "FlashPix Version 1.0", "EXIF_TAG_ORIENTATION" => "Top-left", "EXIF_TAG_EXIF_VERSION" => "Exif Version 2.1", "EXIF_TAG_FOCAL_PLANE_Y_RESOLUTION" => "4.5", "EXIF_TAG_SHARPNESS" => "Normal", "EXIF_TAG_RESOLUTION_UNIT" => "Centimeter", "EXIF_TAG_MODEL" => "R70", "EXIF_TAG_COMPRESSION" => "JPEG compression", "EXIF_TAG_PIXEL_X_DIMENSION" => "2", "EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT" => "Inch", "EXIF_TAG_COLOR_SPACE" => "sRGB", "EXIF_TAG_GAIN_CONTROL" => "Normal", "EXIF_TAG_COMPONENTS_CONFIGURATION" => "Y Cb Cr -", "EXIF_TAG_USER_COMMENT" => "Dummy comment", "EXIF_TAG_Y_RESOLUTION" => "300", "EXIF_TAG_ARTIST" => "Ashwani", "EXIF_TAG_PIXEL_Y_DIMENSION" => "2", "EXIF_TAG_PHOTOMETRIC_INTERPRETATION" => "CieLAB", "EXIF_TAG_SCENE_CAPTURE_TYPE" => "Standard", "EXIF_TAG_FOCAL_PLANE_X_RESOLUTION" => "4.5", "EXIF_TAG_SUBJECT_DISTANCE_RANGE" => "Close view", "EXIF_TAG_METERING_MODE" => "Pattern", "EXIF_TAG_MAKE" => "Canon", "EXIF_TAG_CONTRAST" => "Normal", "EXIF_TAG_X_RESOLUTION" => "300", "EXIF_TAG_WHITE_BALANCE" => "Auto white balance")
Test Summary: | Pass  Total  Time
write-exif.jl |    1      1  2.6s
     Testing ExifViewer tests passed

Both do have the "dummy comment"

Yeah, this case on the "mandril" ref image is weird, and should be fixed.
There are a few GC.@preserveexamples in PNGFiles: https://github.com/JuliaIO/PNGFiles.jl/blob/master/src/utils.jl, or https://github.com/JuliaIO/PNGFiles.jl/blob/master/src/io.jl.


Firewall API returning PHP MVC error

Description
The usage of the firewall (plugin) api triggers an "Array to string conversion (errno=8)"
To Reproduce
Steps to reproduce the behavior:

Go to "System" - > "Access" > "Users" and get an API token a one user
Make a POST request to http(s)://[OPNSENSE-IP]/api/firewall/filter/addRule with the following content

{"rule":{"enabled":"1","sequence":"1","action":{"block":{"value":"Block","selected":1}},"quick":"1","interface":{"opt1":{"value":"/// InterfaceName ///","selected":1}},"direction":{"in":{"value":"In","selected":1}},"ipprotocol":{"inet":{"value":"IPv4","selected":1}},"protocol":{"any":{"value":"any","selected":1}},"source_net":"any","source_not":"0","source_port":"","destination_net":"<IP_ADDRESS>/24","destination_not":"0","destination_port":"","gateway":{"":{"value":"keiner","selected":1}},"log":"0","description":"Test rule from API"}}

Shown behavior
{"errorMessage":"Error at /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php:334 - Array to string conversion (errno=8)","errorTitle":"An API exception occured"}%

Expected behavior
Accepting the Request
Environment
OPNsense 20.1.7 (amd64, OpenSSL) with the firewall plugin.
virtualized with KVM a on Intel(R) Xeon(R) Silver 4114

I got same error when I use api to add naxsi rules
curl -XPOST -d '{"naxsi_rule":{"description":"doc file upload","ruletype":{"main":{"value":"Main Rule","selected":1},"basic":{"value":"Basic Rule","selected":0}},"message":"doc file upload","identifier":"2500","url":"0","dollar_url":"","match_value":"\\.doc","match_type":{"id":{"value":"Blacklist","selected":1},"wl":{"value":"Whitelist","selected":0}},"negate":"0","score":"8","regex":"1","args":"0","headers":"0","dollar_args_var":"","dollar_body_var":"","dollar_headers_var":"","file_extension":"1","raw_body":"0","name":"0"}}' -H "Content-Type: application/json" -k -u "wbM3ElB7KFwEYN2W+1YvL/1TB8owp/Zy4xp0tcFd9hnJ9/Ixkb6Zy4DrXcjFVLjGgkuN6qlu0N0hLJFU":"Wq+9bq5D49oz3ol5aUdetwEwEtu2dsDoA5Y9ov9t0Xxlg+3oXDBkrC7DI9oDO1dhmkSTZv2wzJN5U9Bo"

best try sing the supplied user interface first, if you can replicate the issue there it's easier to investigate, if you can't you can compare both requests for differences (just check the network traffic from our browser).

I use follow command to get already rules.
curl -k -u "key":"secret" https://IP:8082/api/nginx/settings/getnaxsirule/7b7bacfe-ee9a-46e6-b5cd-00176a33f1e3
I got follow content.
{"naxsi_rule":{"description":"asp\/php\/jsp file upload","ruletype":{"main":{"value":"Main Rule","selected":1},"basic":{"value":"Basic Rule","selected":0}},"message":"asp\/php\/jsp file upload","identifier":"1500","url":"0","dollar_url":"","match_value":"\\.ph|\\.asp|\\.ht|\\.jsp","match_type":{"id":{"value":"Blacklist","selected":1},"wl":{"value":"Whitelist","selected":0}},"negate":"0","score":"8","regex":"1","args":"0","headers":"0","dollar_args_var":"","dollar_body_var":"","dollar_headers_var":"","file_extension":"1","raw_body":"0","name":"0"}}
I copy this rules and edit some settings like description and identifier and message and match_value.Then I use follow command to add rules.
curl -XPOST -d '{"naxsi_rule":{"description":"doc file upload","ruletype":{"main":{"value":"Main Rule","selected":1},"basic":{"value":"Basic Rule","selected":0}},"message":"doc file upload","identifier":"2500","url":"0","dollar_url":"","match_value":"\\.doc","match_type":{"id":{"value":"Blacklist","selected":1},"wl":{"value":"Whitelist","selected":0}},"negate":"0","score":"8","regex":"1","args":"0","headers":"0","dollar_args_var":"","dollar_body_var":"","dollar_headers_var":"","file_extension":"1","raw_body":"0","name":"0"}}' -H "Content-Type: application/json" -k -u "key":"secret" https://IP:8082/api/nginx/settings/addnaxsirule
It's will get error message.Could I make a mistake something?

Hit F12 in browser, network tab, add a naxsi rule via browser and look at the correct syntax of your browser

OK,Thanks a lot

I have the same problem. It seems that submitting an array is not possible. Can someone show an example on how to create this rule? The error appears as soon as I add the "interface" item.
{
    "rule": {
        "enabled": "1",
        "sequence": "1",
        "description": "rule_description8",
        "source_net": "<IP_ADDRESS>/24",
        "protocol": "TCP",
        "destination_net": "<IP_ADDRESS>/24",

        "pass": {
            "value": "Pass",
            "selected": 1
        },
        "interface": {
            "opt2": {
                "value": "castintern",
                "selected": 0
            },
            "opt3": {
                "value": "castpublic",
                "selected": 1
            },
            "lan": {
                "value": "LAN",
                "selected": 0
            },
            "lo0": {
                "value": "Loopback",
                "selected": 0
            },
            "opt1": {
                "value": "OPT1",
                "selected": 0
            },
            "wan": {
                "value": "WAN",
                "selected": 0
            }
        }
    }
}
```json

Found the correct and easy way:
{
    "rule": {
        "enabled": "1",
        "sequence": "1",
        "description": "rule_description8",
        "source_net": "<IP_ADDRESS>",
        "protocol": "any",
        "destination_net": "<IP_ADDRESS>",
        "interface": "opt1"
    }
}


Please add Blazor syntax highlighter.

Blazor syntax is really like razor, just need to change the @{ } block to @code { } block.

That will be a great feature. Really useful for projects like BlazorREPL

This would be awesome. Does work around exist?


Upgrade grandiso version to 1.1.0

In grandiso v1.1.0 and above, there is an optional limit argument to the find_motifs call which short-circuits motif counting if a certain number of valid mappings are found.
Right now, NetworkX and GrandIso executors implement the dotmotif limit parameter by finding all motifs and then downselecting, which is super inefficient and lame. We could pretty substantially improve performance by supporting the GrandIso limit arg.
A notable challenge: We perform an additional downselect after running grandiso (to double-check attribute filters). So we may need to store a list of mappings temporarily in order to backfill the results list if candidate mappings are filtered out.

In light of the new find_motifs_iter form in grandiso, this last point is moot — we can now continue searching until we meet the limit criteria, without wasting time on extra searches. (Thanks to @Raphtor!)

https://github.com/aplbrain/grandiso-networkx/pull/17


fix(menu): proper setting of leftShowing flag

Short description of what this resolves:
Sets leftShowing flag in SideMenuController only when amount of showing menu is greater than zero
Changes proposed in this pull request:

optimized settings of leftShowing and rightShowing flags in SideMenuController

Ionic Version: 1.x

thanks


Apply minor changes to the release doc

Description
Changes proposed in this pull request:

Apply minor changes to the release doc

This is small change so I will align it with my docusaura branch after merge


#16 - Add roi tool

In this PR I will tackle issue #16

Codecov Report

Merging #28 (afa21d0) into main (f48a544) will not change coverage.
The diff coverage is 0.00%.

@@         Coverage Diff          @@
##           main     #28   +/-   ##
====================================
  Coverage      0   0.00%
====================================
  Files         0       2    +2
  Lines         0      24   +24
====================================
- Misses        0      24   +24

Impacted Files
Coverage Δ

wazp/utils.py
0.00% <0.00%> (ø)

wazp/__init__.py
0.00% <0.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

This PR closes issue #16
Apologies for the gigantic PR (and to think that this is the cleaned-up, rebased, version).
So this is how the ROI tab currently looks like:

Features

The user selects a video from the dropdown (this is auto-populated based on the uploaded project config)
The video selection triggers an update of the frame slider. The user may select one of 5 frames, equally spaced across the video (the default is the middle frame).
Whenever a video or a frame is changed, the corresponding frame will be shown on the graph below. Frames used within the last day are cached locally (this saves time, given that extracting a frame from a video may take a few seconds).
The user may draw ROIs by first selecting the appropriate ROI from the dropdown (auto-populated based on the project config) and then drawing in freeform (specifically using the drawclosedpath tool, see discussion under issue #11 )
The drawn ROIs automatically appear on the table and are also saved in the browser session (this means that if a user goes to another video and comes back later, the drawn ROIs will not be lost)
ROIs can be edited by selecting them and editing/deleting individual nodes, or via translating the entire ROI. A selected ROI can also be deleted. All edits on the graph automatically appear on the table as well.
The video frame on which the ROI was last drawn/edited is kept in the session storage and also appears on the table.
The user can save ROIs to the video's .metadata.yaml file. This creates a new ROIs field which has the following form:

ROIs:
- drawn_on_frame: 57000
  line_color: '#2E91E5'
  name: enclosure
  path: M348.0491395793499,...
- drawn_on_frame: 38000
  line_color: '#E15F99'
  name: left_box
  path: M484.23300516875133,...

The user may also load the ROIs from a video's metadata file. The uploaded info will overwrite whatever is on the graph and the table.

What is missing

The "infer ROIs" button is currently not-functional (to be implemented in the future, see issues #11 and #3)
The user may currently draw self-intersecting polygons as ROIs (thedrawclosedpath doesn't prevent that). We may want to implement a check for the validity of a polygon as an ROI
Adding the ROIs field to the metadata files breaks the table-building functionalities of the metadata tab. I tried to solve this in various ways without success. Currently, the issue is circumvented by building the metadata table from fields that are present in all metadata files (by specifying join="inner"). In the future, we should think of how exactly to represent the presence/absence of defined ROIs in the metadata files and in the metadata table. Some drastic solutions would be to not show the ROis in the metadata table or to save the ROIs to a separate file (but perhaps a non-drastic solution can be found).

Note on the above
To really review this PR, you need to alias (at least some of) the videos in sample_project to a location on your system that actually contains the data (e.g. on a mounted /cep/zoo drive). At least until we find a more permanent solution, as per issue #33

Manual testing looks good. I've just drawn some boxes. I can see the paths appear in the metadata.yaml 👍  I can also (re)load them on closing and restarting the server.
How easy would it be (sorry!) to implement backspace deletion? Moving the RoIs around and resizing are both possible, but my naive attempts to delete (backspace and right-click) don't do anything, I have to notice the feint backspace icon on hover at the top.
If this is not easy, please ignore. The dash "hovering toolbar" interface is adequate. And anyway the researchers will become accustomed to this because the plots also have that.


Filtering on dates when using to_table

I was trying to test filtering and the primary thing I would want to filter for one example dataset is the date.  I tried to get the date working and looking through a bunch of pyarrow code, but I couldn't figure it out. Just checking if anyone knows if it is supported and if there is an example somewhere or how to get dates working correctly.
dfl = dataset.to_table(
    columns=["inference_date"],
    limit=0,
    # also doesn't work
    # filter=ds.field("inference_date") > pd.to_datetime("2020-01-05')
    filter=ds.field("inference_date") > pa.scalar(datetime.datetime.strptime('2020-01-05', "%Y-%m-%d"))
).to_pandas()

Error is ValueError: LanceError(I/O): sql parser error: Expected ), found: 00.
/home/ubuntu/ml/SETUP_test_lance_datasets.ipynb Cell 12' in <cell line: 1>()
----> [1](vscode-notebook-cell://ssh-remote%2Bwork-dev/home/ubuntu/ml/SETUP_test_lance_datasets.ipynb#X14sdnNjb2RlLXJlbW90ZQ%3D%3D?line=0) dfl = dataset.to_table(
      [2](vscode-notebook-cell://ssh-remote%2Bwork-dev/home/ubuntu/ml/SETUP_test_lance_datasets.ipynb#X14sdnNjb2RlLXJlbW90ZQ%3D%3D?line=1)     # columns=["inference_date"],
      [3](vscode-notebook-cell://ssh-remote%2Bwork-dev/home/ubuntu/ml/SETUP_test_lance_datasets.ipynb#X14sdnNjb2RlLXJlbW90ZQ%3D%3D?line=2)     limit=0,
      [5](vscode-notebook-cell://ssh-remote%2Bwork-dev/home/ubuntu/ml/SETUP_test_lance_datasets.ipynb#X14sdnNjb2RlLXJlbW90ZQ%3D%3D?line=4)     filter=ds.field("inference_date") > pa.scalar(datetime.datetime.strptime('2020-01-05', "%Y-%m-%d"))
      [6](vscode-notebook-cell://ssh-remote%2Bwork-dev/home/ubuntu/ml/SETUP_test_lance_datasets.ipynb#X14sdnNjb2RlLXJlbW90ZQ%3D%3D?line=5) ).to_pandas()

File ~/miniconda/envs/opcity-ml/lib/python3.9/site-packages/lance/dataset.py:179, in LanceDataset.to_table(self, columns, filter, limit, offset, nearest)
    [138](file:///home/ubuntu/miniconda/envs/opcity-ml/lib/python3.9/site-packages/lance/dataset.py?line=137) def to_table(
    [139](file:///home/ubuntu/miniconda/envs/opcity-ml/lib/python3.9/site-packages/lance/dataset.py?line=138)     self,
    [140](file:///home/ubuntu/miniconda/envs/opcity-ml/lib/python3.9/site-packages/lance/dataset.py?line=139)     columns: Optional[list[str]] = None,
   (...)
    [144](file:///home/ubuntu/miniconda/envs/opcity-ml/lib/python3.9/site-packages/lance/dataset.py?line=143)     nearest: Optional[dict] = None,
    [145](file:///home/ubuntu/miniconda/envs/opcity-ml/lib/python3.9/site-packages/lance/dataset.py?line=144) ) -> pa.Table:
    [146](file:///home/ubuntu/miniconda/envs/opcity-ml/lib/python3.9/site-packages/lance/dataset.py?line=145)     """Read the data into memory as a pyarrow Table.
    [147](file:///home/ubuntu/miniconda/envs/opcity-ml/lib/python3.9/site-packages/lance/dataset.py?line=146)
    [148](file:///home/ubuntu/miniconda/envs/opcity-ml/lib/python3.9/site-packages/lance/dataset.py?line=147)     Parameters
   (...)
    [177](file:///home/ubuntu/miniconda/envs/opcity-ml/lib/python3.9/site-packages/lance/dataset.py?line=176)     2. The results are filtered afterwards.
    [178](file:///home/ubuntu/miniconda/envs/opcity-ml/lib/python3.9/site-packages/lance/dataset.py?line=177)     """
--> [179](file:///home/ubuntu/miniconda/envs/opcity-ml/lib/python3.9/site-packages/lance/dataset.py?line=178)     return self.scanner(
    [180](file:///home/ubuntu/miniconda/envs/opcity-ml/lib/python3.9/site-packages/lance/dataset.py?line=179)         columns=columns, filter=filter, limit=limit, offset=offset, nearest=nearest
...
    [491](file:///home/ubuntu/miniconda/envs/opcity-ml/lib/python3.9/site-packages/lance/dataset.py?line=490)         self._columns, self._filter, self._limit, self._offset, self._nearest
    [492](file:///home/ubuntu/miniconda/envs/opcity-ml/lib/python3.9/site-packages/lance/dataset.py?line=491)     )
    [493](file:///home/ubuntu/miniconda/envs/opcity-ml/lib/python3.9/site-packages/lance/dataset.py?line=492)     return LanceScanner(scanner, self.ds)

hi @JSpenced , thanks for the bug report. There's two issues here:

Because Lance is Rust based, we don't really have access to the Arrow C++ compute expressions. So instead, we use datafusion under the hood and you can pass in sql where clause strings. I'll file a docs issue to clarify this difference
Currently there's a feature gap for datetime columns where the code does not know to convert strings to datetime when appropriate. I'll file a separate issue for this.

datetime string parsing is completed via https://github.com/lancedb/lance/pull/1026
There's some movement on pyarrow to make compute expressions convertible to str / datafusion. And long-term we may want to use substrait anyways

the remaining issue with compute expression is tracked in #849 so I'm closing this issue


Add new member Sadie to teams page

Asked them to complete by Friday 6/16.

Completed with commit eb1e266f869e450913f6fede061594caca31e9a1


add getting secrets utils method for sinks

Motivation
Currently, "loadWithSecrets" method of integrating secrets with connectors only works for sources.
Add support sinks as well

rerun cpp tests


[HUDI-3148] Create pushgateway client based on port

Tips

Thank you very much for contributing to Apache Hudi.
Please review https://hudi.apache.org/contribute/how-to-contribute before opening a pull request.

What is the purpose of the pull request
https://github.com/apache/hudi/issues/4496
Fix above issue
Brief change log

Consider port while creating pushgateway client

Verify this pull request
(Please pick either of the following options)
This pull request is a trivial rework / code cleanup without any test coverage.
(or)
This pull request is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[x] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

@t0il3ts0ap : sorry do you know if suffixing the port would work or fail? I did not get a chance to test it out, but suffixed the port and merged it in.
can you please let me know if we need to fix it.


Amazon Linux not handled properly

I'm using AmazonLinux and tried to use this cookbook, and then faced an issue.
On my server ohai output looks like below
{
  "platform": "amazon",
  "platform_version": "2017.03",
  "platform_family": "rhel",
  ...
}

and timezone_iii::default goes into branches with node['platform_family'], not with node['platform']:
https://github.com/Stromweld/timezone_iii/blob/master/recipes/default.rb#L25-L30
So all AmazonLinux servers go into rhel7 branch and never goes into amazon.
For now my only workaround is installing tzdata in other place and include_recipe 'timezone_iii::amazon'.

what version of chef-client are you using?

Chef client 13 they changed amazon to it's own platform-family. The metadata in here needs to be updated to reflect chef-client 13+.

I added a node in the readme for chef-client 13 when running amazon linux. Other OS's 12.x works just fine.

Understood. I used chef-client 12.19.36, which was too old.
Thank you!


[Question] Understanding how iitc aquires Data in Local Storage

I am trying to set ingress.intelmap.layergroupdisplayed with the value:
{
"Unclaimed/Placeholder Portals":false,
"Level 1 Portals":true,"Level 2 Portals":true,
"Level 3 Portals":true,"Level 4 Portals":true,
"Level 5 Portals":true,"Level 6 Portals":true,
"Level 7 Portals":true,"Level 8 Portals":true,
"Fields":true,
"Links":true,
"Resistance":true,
"Enlightened":true,
"DEBUG Data Tiles":false,
"Artifacts":true,
"Ornaments":true,
"Player Tracker Resistance":true,
"Drawn Items":true,
"Cross Links":true
}

and after that I load IITC into the ingress Page. My Problem is "Unclaimed/Placeholder Portals" are still shown. But If I set fields to false they aren't shown. Am I missing something here? PS: I am using Phantomjs so reload is no Option but on PC that fixes it.

I don't know where you got the "Unclaimed/Placeholder Portals" member - the value IITC reads/uses is simply "Unclaimed" (@744 in the current release), so you're just setting something it doesn't read

Ah ok. I got that from ingress-ice :) thaks for info.

That also does not hide the portals if it is set to false.

"Unclaimed Portals":false
On Wed, Jan 11, 2017 at 12:04 PM, Marcel<EMAIL_ADDRESS>wrote:

That also does not hide the portals if it is set to false.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/iitc-project/ingress-intel-total-conversion/issues/1167#issuecomment-271978550,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXzED7NO16XlF-_OovVorsimFSEQWpyyks5rRTXCgaJpZM4LYbES
.

that also still shows them at zoom level 18.  I will try on desktop. maybe it is a issue with phantomjs

Ah my fresh install (nightly) says "Unclaimed/Placeholder Portals" :/ thats the generated string by iitc on first run

If i set that to false in the local storage at my desktop pc iitc hides them.

ok maybe i got initialy a problem. now it works :)

This changed in commit 8f6f89a - just the first official build since then,
on Jan 8th :)
On Wed, Jan 11, 2017 at 12:45 PM, Marcel<EMAIL_ADDRESS>wrote:

ok maybe i got initialy a problem. now it works :)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/iitc-project/ingress-intel-total-conversion/issues/1167#issuecomment-271988801,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXzEDw-fA6WJgEZkSjoUEstN7IumTlw6ks5rRT-GgaJpZM4LYbES
.


wikit: init at 4.4-unstable-2022-10-17

Description of changes
Fixes #344408

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Just a heads up that the package has not been updated in 2 years.


[imageCache] pendingImage listener is not removed after call to imageCache.clear

Problem description:
I am running flutter application/engine on the embedded linux. I am using the FlutterEngineNotifyLowMemoryWarning to notify the application when the system is going low on the memory.
I noticed that some of the images in the ImageCache are never released, after the call to imageCache.clear() which is internally triggered when handling the FlutterEngineNotifyLowMemoryWarning (https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/painting/binding.dart#L124).
This looks like the potential race, the pendingImage listener was not removed from the pendingImage:
https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/painting/image_cache.dart#L431
because the pendingImages list was emptied in the meantime:
https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/painting/image_cache.dart#L197
The sample application that shows the problem:
https://github.com/michalkucharczyk/flutter_image_cache

$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.5.3, on Ubuntu 20.04.3 LTS 5.11.0-40-generic, locale en_US.UTF-8)
[✗] Android toolchain - develop for Android devices
✗ Unable to locate Android SDK.
Install Android Studio from: https://developer.android.com/studio/index.html
On first launch it will assist you in installing the Android SDK components.
(or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions).
If the Android SDK has been installed to a custom location, please use
flutter config --android-sdk to update to that location.
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[!] Android Studio (not installed)
[✓] Connected device (2 available)

The following commit fix the problem, however I am not sure if this is a valid approach:
https://github.com/michalkucharczyk/flutter/commit/c23fcf98bf62d48230cc71e7875bbd92d95551f0

Thanks for the report and sample app. Verified on latest stable and master.

 stable, master flutter doctor -v
[✓] Flutter (Channel stable, 2.5.3, on Mac OS X 10.15.4 19E2269 darwin-x64,
    locale en-GB)
    • Flutter version 2.5.3 at /Users/dhs/documents/fluttersdk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18116933e7 (2 days ago), 2021-10-15 10:46:35 -0700
    • Engine revision d3ea636dc5
    • Dart version 2.14.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Users/dhs/Library/Android/sdk
    • Java binary at: /Users/dhs/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/202.7486908/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Users/dhs/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/202.7486908/Android
      Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.57.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (4 available)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 93.0.4577.82

• No issues found!

[✓] Flutter (Channel master, 2.6.0-12.0.pre.719, on Mac OS X 10.15.4 19E2269
    darwin-x64, locale en-GB)
    • Flutter version 2.6.0-12.0.pre.719 at
      /Users/dhs/documents/fluttersdk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 34dbee66de (6 hours ago), 2021-11-14 18:46:02 -0500
    • Engine revision 140bd9399e
    • Dart version 2.16.0 (build 2.16.0-10.0.dev)
    • DevTools version 2.8.0

[✓] Android toolchain - develop for Android devices (Android SDK version 30)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Users/dhs/Library/Android/sdk
    • Java binary at: /Users/dhs/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/202.7486908/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5.1, Build version 12E507
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Users/dhs/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/202.7486908/Android
      Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.57.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[[✓] Connected device (4 available)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 93.0.4577.82

• No issues found!

It seems that my "proposal": #93543 is breaking the following test: https://github.com/flutter/flutter/blob/master/packages/flutter/test/painting/image_cache_test.dart#L173
This test shows similar situation to the one I am getting with lowMemoryPressure callback. To avoid changes in ImageCache implementation we could add the call to imageCache.clearLiveImages in the handleMemoryPressure.
https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/painting/binding.dart#L122
@override
  void handleMemoryPressure() {
    super.handleMemoryPressure();
    imageCache?.clear();
+  imageCache?.clearLiveImages();
  }

Would that be the right approach?
And what intrigues me: Is it intentional that single-referenced (by ImageCache listener only) pending image is forever hanging in cache as the living Image after the call to imageCache.clear? This seems strange to me, as the only way to remove this image is by calling clearLiveImages function, which as per documentation is intended to be called by hot reload.


Code Factor: Use of insecure input() function.

The input() function in Python 2 will read from standard input, evaluate and run the resulting string as python source code. This is similar, though in many ways worse, than using eval. On Python 2, use raw_input() instead, input is safe in Python 3.
Example of insecure code:
name = input("What's your name? ")
print("Nice to meet you " + name + "!")

Example of secure code:
name = raw_input("What's your name? ")
print("Nice to meet you " + name + "!")

Further Reading:
The Python Standard Library - input()

Code in question
Found in math\acnh\best_wedding_items.py:8
    line 8        text = int(input(text))

In Code Factor's documentation, it has been noted that the check for this issue has been removed from their code quality checks:
B322: input
The check for this call has been removed.

This information can be found here.
I have marked this issue to be ignored as they have removed the check after this code was checked-in. Additionally, this code is not intended for, and will not run on, Python 2. Since this is only an issue if ran on Python 2, we can safely ignore this issue.

In Code Factor's documentation, it has been noted that the check for this issue has been removed from their code quality checks:
B322: input
The check for this call has been removed.

This information can be found here.
I have marked this issue to be ignored as they have removed the check after this code was checked-in. Additionally, this code is not intended for, and will not run on, Python 2. Since this is only an issue if ran on Python 2, we can safely ignore this issue.


No teams are shown

Yes, I know, it's an issue with GitHub's GraphQL API which we are trying to solve.

Fixed everything for now, should be back to its former glory :)


Possibility to specify exchange and routing keys in toml config

Hi,
In my rabbitmq configuration, I am using exchanges with routing keys.
We noticed that when we delete and recreate a queue, the exchange configuration of the queue is lost.
We were wondering if it is possible to include something in the toml configuration file to specify to which exchange the queue is binded and eventually a routing key.
Thanks,

Hi @gioialorusso, do you manually delete the queues from RabbitMQ, why?
Anyway, I can think on it but usually a consumer should not know many things about specific exchanges configuration and routing keys, are your RabbitMQ configuration not persistent?


chore: update realm_settings.py

minor fix

Fixes:

Screenshots and screen captures:

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

@timabbott this PR fixes two typos.

@eltociear  Thanks for the fix! If you have a chance, could you please update your commit message to match the commit style guidelines?


custom validator function does not run for updates on object fields

I have a scenario where certain fields are required only when another property is true. Following the example here but modifying the type field to MyOtherSchema, the custom function only runs on insert and not update or upsert. However, the custom function does run on updates if the type is String. Is this expected behavior? How can I get the custom function to run for updating objects?
{
  field: {
    type: MyOtherSchema,  //<----- different from example, not a simple value type
    optional: true,
    custom: function () {
      var shouldBeRequired = this.field('saleType').value == 1;

      if (shouldBeRequired) {
        // inserts
        if (!this.operator) {
          if (!this.isSet || this.value === null || this.value === "") return "required";
        }

        // updates
        else if (this.isSet) {
          if (this.operator === "$set" && this.value === null || this.value === "") return "required";
          if (this.operator === "$unset") return "required";
          if (this.operator === "$rename") return "required";
        }
      }
    }
  }
}

Note that if type is Object instead of MyOtherSchema, the behavior is the same, i.e. custom validator is not executed.

Closing old issues. Please comment if this is still an issue and should be reopened.


Standardize filter options and display between Resource and Structured Logs view

For GA we are prioritizing filtering for Resource page to align with the implementation in Structured Logs view.
Sorting by Type, Name, State and Start time is available.
CC: @leslierichardson95

@kvenkatrajan should this technically have the feature label?
Also, any idea on who will be doing this? I'm doing a pass on P5 issues and want to make sure to have them all assigned if possible.


Update group id to io.getunleash

Since this is being maintained by Unleash now, we should use our own group id. Fixed #9.

Isn't this duplicating the effort of #10 ?