python3Packages.term-image: init at 0.7.2

Add term-image, needed (optionally) by a new release of toot.
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
[ ] 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.

Result of nixpkgs-review pr 347924 run on x86_64-linux 1

4 packages built:

python311Packages.term-image
python311Packages.term-image.dist
python312Packages.term-image
python312Packages.term-image.dist

Thanks for the review, @fabaff, I’ve applied your suggestions.

@Aleksanaa applied your suggestions, thanks.

@ofborg build python312Packages.term-image python311Packages.term-image


Standard processor sort does not take into account types

Hi,
If you use the sort standard processor with a single field as the sort-by key, that field's type is not taken into account. That means there is no way to sort a resource by a number field or a datetime field.
One solution would be to change how the sort key is inputted to the sort processor. Currently you input a string with format brackets ({})  for field names. I think it would be make sense to instead take in a list of fields. For each row, the first field in the list is compared (taking into account type), with ties being broken by subsequent rows in the input list.

Fixed in<EMAIL_ADDRESS>

Works well! Thanks!


Implement three measures

Hello , how did you calculate the Region Similarity and Contour Accuracy? Thank you!

@InstantWindy do you mean the metric on the DAVIS benchmark? If so, please directly use their provided code for evaluation: https://davischallenge.org/davis2016/code.html.

@wasidennis  sorry , but I have a question about the official code "jaccard.py" file and the "f_boundary.py" file.But I don't know what the input parameters of the db_eval_iou function of the'jaccard.py'file and 'db_eval_boundary' function of the 'f_boundary.py' file should be? I don't know what the parameters of these two functions should be. I hope to get your help.Thank you!


Autocomplete does not work at a depth of 3 groups

I have this command structure.
cli        (group - entry point)
-ip        (group)
--static   (group)
---foo     (method)
--floating (group)
---bar     (method)

And when I press TabTab keys:

attempt - i have correct autocomplete such as ip command
attempt - i have correct autocomplete such as floating and static commands
attempt - i have incorrect autocomplete - list of all files in current dir instead of bar command.

Here's the code:
shell.py
# coding=utf-8
import click

@click.group()
def cli():
    """Entry point"""

@cli.group()
def ip():
    pass

@ip.group()
def floating():
    pass

@floating.command()
def bar():
    """Is a ip floating command"""

@ip.group()
def static():
    pass

@static.command()
def foo():
    """Is a ip static command"""

setup.py
from distutils.core import setup

setup(
    name='sampleclick',
    packages=['sampleclick'],
    entry_points={
        'console_scripts': [
            'sc = sampleclick.shell:cli'
        ]
    },
    install_requires=[
        'click>=6.6',
    ]
)

It is a bug in library or i doing something wrong?
I tryed search some help on ST, but it seems no one is faced with similar situation.

I'm also seeing this behavior with click version 6.6.

+1

It looks like they've submitted a fix and tests for this a bit ago, and it's merged into master. Just waiting for the next release.
See #630

+1 I'm facing the same issue as well

Its been an year since it was raised and issue is still open. Is there any workarounds for this?

@balajeetm  This works for me in version 6.7.

I encountered this bug in version 6.6. I can attest that it is fixed for me in version 6.7 by commit https://github.com/pallets/click/commit/8af7ec14f3d936e02c2e4ee62d3573593868e07e.


Closed connections not being released from pool

Environment
Knex version: 0.21.1
Database + version: Postgres 11.5
OS: macOS
Bug
Setup:
I set up min & max as 3 for my pool size. I then start 3 transactions asynchronously.
Each transaction:

sets a local statement and idle timeout as 200 seconds
queries pg_backend_pid
sleeps for 200 seconds

Except that one of those 3 transactions has 1 second as its statement and idle timeout.
After 5 seconds, I start another transaction and try to query pg_backend_pid
Expectation:

The transaction which had 1s as timeout should have been evicted from the pool.
The transaction started after 5 seconds should have been able to acquire a connection

Result:

The transaction started after 5 seconds is unable to get a connection and fails with:

Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx) call?

Instrumentation:
I have setup a setInterval which logs the querable status of each connection in pool. Something like this:
setInterval(() => {
        console.log('USED:', knex.client.pool.used.map(poolMember => poolMember.resource._queryable))
}, 200);

Here's a slice of these logs:
USED: [ true, true, true ]
USED: [ true, true, true ]
USED: [ true, true, true ]
USED: [ true, true, true ]
USED: [ true, true, true ]
USED: [ false, true, true ]
USED: [ false, true, true ]
USED: [ false, true, true ]
USED: [ false, true, true ]

This makes sense because one those transactions crossed the timeout and were terminated by database.
And if we continue logging till we attempt to start a transaction after 5 seconds these are the logs:
USED: [ false, true, true ]
USED: [ false, true, true ]
USED: [ false, true, true ]
(node:10353) UnhandledPromiseRejectionWarning: KnexTimeoutError: Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx) call?
    at Client_PG.acquireConnection (/Users/iostreamer/knex-pool-test/node_modules/knex/lib/client.js:349:26)
(node:10353) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 3)
(node:10353) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
USED: [ false, true, true ]
USED: [ false, true, true ]

My understanding has been that the pool was never rid of that closed connection and hence that last transaction was unable to acquire a new connection.
Please correct me if I am wrong or missed something. Also I can provide additional code if wanted.
Thanks!
PS:
I tried a hack where before acquiring a transaction I checked if there were any closed/errored connection in pool, if so, then I cleaned them up. Like this:
for (const poolMember of knex.client.pool.used) {
        const result = knex.client.pool.validate(poolMember.resource);
        if (!result) {
            await knex.client.releaseConnection(poolMember.resource)
        }
        console.log('validate:', result);
    }

This seems to work just fine and the transaction started after 5 seconds is able to acquire a connection.

@iostreamer-X Could you please provide full reproduction code?

Surely! @kibertoad
Here's the code on runkit: https://runkit.com/iostreamer-x/5eb41789ebd8c60014486a13
Ping if you need anything else.

My understanding has been that the pool was never rid of that closed connection and hence that last transaction was unable to acquire a new connection.

When connection error comes from DB closing the connection it is not evicted from pool until the next time that resource is tried to be returned from the pool. So When connection is acquired from pool next time the validation will be ran and the validation should notice that connection is not good anymore and discard it.

Oh! In the setup above, where there were 3 resources in pool and one of them was not quereable after some time.
From what you explained, when I tried to acquire a 4th connection knex/tarn should have validated the faulty connection, created a new one and returned that.
But apparently trying a 4th connection results in Knex: Timeout error.
Is there something I am missing @elhigu ?

Is the case that tarn perceived that faulty connection as a busy resource?

@iostreamer-X No. Tarn.js just doesn't check any resources that are idling in the pool. They are only validated during creation and when they are about to be acquired by knex.

From what you explained, when I tried to acquire a 4th connection knex/tarn should have validated the faulty connection, created a new one and returned that.
But apparently trying a 4th connection results in Knex: Timeout error.

If pool size is 3 and you are trying to acquire 4th connection timeout sounds like correct thing to return. In your debug prints you are listing always used resources. Doesn't it just mean that you have never ended those transactions you have opened?

You could try to run your code with DEBUG=knex:* environment variable set to see in which point stuff is fetched and returned to the pool. Also tarn has pretty good amount of events to track down what is happening there internally.

Got it. Essentially if for some reason application is unable to commit or rollback a transaction, knex will still view that as a live resource which is being used. And until we make the transaction to commit/rollback knex won't validate the connection.
So if a transaction was cancelled by server and then we try to commit it we might get and error like Client is not querable, and the corresponding connection will be removed from the pool.
It's kinda like when the application has acquired a connection, knex won't intervene in any way till the application lets go of it.
Is that understanding correct @elhigu ?

As far as I know I thought that calling trx.commit() should always return connection to the pool even if commit fails. And when connection is acquired next time from the pool it should be discarded. I'm not sure though if it actually works exactly like that currently.

Thanks a lot for explaining this! @elhigu
I think I should close this now:
For anyone who stumbles upon this:
knex will evict as per the discussion above and will work normally. If one observes pool hogging, try looking at leaks and missing rollbacks or commits.

Question: Does this imply that we need 1 connection in the pool per simultaneous transaction we intend to support?

@tomlagier Yes. With knex (and pretty much with all databases also) transaction requires that the related queries are sent to DB through the same connection.


ready option for useFetch to control requests

Describe the feature
const id = ref()
useFetch('/api/test', {
  query: {
    id
  },
  ready: () => !!id.value
})

interface Options {
  /** default `() => true` */
  ready: () => boolean
  // or
  // ready: MaybeRefOrGetter<boolean>
}

Whenever the handler is executed, if ready is false, prevent the execution of handler.
Additional information

[x] Would you be willing to help implement this feature?
[ ] Could this feature be implemented as a module?

Final checks

[x] Read the contribution guide.
[x] Check existing discussions and issues.

I don't know what scene you have.. and ready is necessary for this?
if (id.value) {
   useFetch('/api/test')
}

When using useFetch with reactive option(like watch, query, etc...), I hope the handler can be prevented when the value is unexpected.
const id = ref()
useFetch('/api', {
  query: {
    id
  }
})

// ...
function onClickRow(row) {
  id.value = row.id
}

This is a easy example. I hope when id was undefined, the handler can be prevented. In actual application scenarios, this situation becomes complicated, more parameters also increase the complexity again. I hope there is a unified approach to this problem. Currently I handle this problem through computed:
computed((old) => id.value === undefined ? old : id.value)

This is not intuitive and very cumbersome.


Update CODEOWNERS for Batch

Our team is taking over the Batch SDKs - updated CODEOWNERS to match.

/check-enforcer override


Please consider fixing issues detected by repository checker

Notification from ioBroker Check and Service Bot
Dear adapter developer,
I'm the ioBroker Check and Service Bot. I'm an automated tool processing routine tasks for the ioBroker infrastructure. I have recently checked the repository for your adapter remeha-home for common errors and appropiate suggestions to keep this adapter up to date.
This check is based the current head revisions (master / main  branch) of the adapter repository
Please see the result of the check below.
ioBroker.remeha-home
  -
:thumbsup: No errors found
WARNINGS:

[x] :eyes: [W401] Cannot find "remeha-home" in latest repository

:thumbsup: No suggestions found
Please review issues reported and consider fixing them as soon as appropiate.
Warnings reported by repository checker should be reviewed. While some warnings can be ignored due to good reasons or a dedicated decision of the developer, most warnings should be fixed as soon as appropiate.
You may start a new check or force the creation of a new issue at any time by adding the following comment to this issue:
@iobroker-bot recheck
@iobroker-bot recreate
Please note that I (and the server at GitHub) have always plenty of work to do. So it may last up to 30 minutes until you see a reaction. I will drop a comment here as soon as I start processing.
Feel free to contact me (@iobroker-bot) if you have any questions or feel that an issue is incorrectly flagged.
And THANKS A LOT for maintaining this adapter from me and all users.
Let's work together for the best user experience.
your
ioBroker Check and Service Bot
@mcm1957 for evidence
Last update at Wed, 18 Sep 2024 13:55:18 GMT based on commit 1f411cd6bfe3d62596c4222a3c5478cbbeb9261e
ioBroker.repochecker 3.0.6

Thanks for processing and closing this issue.
I will recheck for new issues later. So it's no problem if this issue has been closed premature.
You may start a new check at any time by adding the following comment to this issue:
@iobroker-bot recheck
Please note that I (and the server at GitHub) have always plenty of work to do. So it may last up to 30 minutes until you see a reaction. I will drop a comment here as soon as I start processing.
Feel free to contact me (@iobroker-bot) if you have any questions or feel that an issue is incorrectly flagged.  Let's work together for the best user experience.
your
ioBroker Check and Service Bot


Crash at startup

gradle file
apply plugin: 'com.neenbedankt.android-apt'
...
compile 'com.android.support:appcompat-v7:25.0.1'
...
apt 'com.google.dagger:dagger-compiler:2.8'
compile 'com.google.dagger:dagger:2.8'
...
compile 'com.arello-mobile:moxy:1.4.5'
provided 'com.arello-mobile:moxy-compiler:1.4.5'
compile 'com.arello-mobile:moxy-android:1.4.5'
compile 'com.arello-mobile:moxy-app-compat:1.4.5'

crash
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/arellomobile/mvp/MoxyReflector;
at com.arellomobile.mvp.MvpProcessor.getMvpPresenters(MvpProcessor.java:82)
at com.arellomobile.mvp.MvpDelegate.onCreate(MvpDelegate.java:101)
at com.arellomobile.mvp.MvpAppCompatFragment.onCreate(MvpAppCompatFragment.java:23)
at some.package.BaseFragment.onCreate(BaseFragment.java:26)

Hi,
You can try use apt'com.arello-mobile:moxy-compiler:1.4.5' instead of provided 'com.arello-mobile:moxy-compiler:1.4.5'

Already tryed, with no luck

Ok, have you some @InjectPresenter in your code? Or is it hello world project?

Yes I have one @InjectPresenter
my structure is
public class ProfileFragment extends BaseFragment<ProfilePresenter> implements ProfileView {
    @InjectPresenter
    ProfilePresenter mPresenter;
...
}

public class BaseFragment<V extends BasePresenter> extends MvpAppCompatFragment implements View {}

@InjectViewState
public class ProfilePresenter extends BasePresenter<ProfileView> {}

@InjectViewState
public class  BasePresenter<T extends MvpView> extends MvpPresenter<T> {}

public interface ProfileView extends View {}
public interface View extends MvpView {}

I think problem with MoxyReflector initialization, because I want to use Moxy with existing project and I integrate it to only one Fragment. So, now I extends MvpAppCompatFragment and MvpPresenter with my base classes, but I not inject presenters for all my fragments.
Now I get same error for other classes.
Maybe I can force to generate MoxyReflector class?

Maybe you are using jack? Currently jack has one throuble with moxy's annotation processor

No, we don't use Jack, but retrolambda

Hmm, that's strange =) Could you check is file app\build\generated\source\apt\debug\com\arellomobile\mvp\MoxyReflector.java exists after rebuild project?
PS: Retrolambda is ok with Moxy
PPS: Could you run sample-github also?

gradle
apt 'com.arello-mobile:moxy-compiler:1.4.5'
after "Rebuild project" where is no folder "app\build\generated\source\apt\debug\com\arellomobile" and in any other places

It's so strange :D could you give me more info about your project? Like full gradle config(all config files), screenshot of structure app\build\generated\source\apt\debug.

I tried to move all our libraries and dependencies to test project, but test project is working with no problems.
app/build.gradle
apply plugin: 'com.android.application'
apply plugin: 'de.felixschulze.gradle.hockeyapp'
apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'com.jakewharton.hugo'
...
dependencies {
    compile files('libs/xxx.jar')
    compile files('libs/yyy.jar')
    //play-services
    compile 'com.google.android.gms:play-services-gcm:10.0.1'

    //dagger
    apt 'com.google.dagger:dagger-compiler:2.8'

    compile 'net.hockeyapp.android:HockeySDK:4.0.0'
    compile 'de.hdodenhof:circleimageview:2.0.0'
    compile('io.branch.sdk.android:library:2.+') {
        exclude module: 'answers-shim'
    }
    compile 'com.github.clans:fab:1.6.2'
    compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4'
    compile 'net.danlew:android.joda:<IP_ADDRESS>'

    //support library
    compile 'com.android.support:appcompat-v7:25.0.1'
    compile 'com.android.support:cardview-v7:25.0.1'
    compile 'com.android.support:support-v4:25.0.1'
    compile 'com.android.support:design:25.0.1'
    compile 'com.android.support:exifinterface:25.1.0'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.android.support:recyclerview-v7:25.0.1'
    compile 'com.android.support:percent:25.0.1'

    //play-services
    compile 'com.google.android.gms:play-services-vision:10.0.1'

    compile 'com.google.code.gson:gson:2.4'

    //ui
    compile 'me.relex:circleindicator:1.1.5@aar'
    compile 'com.tonicartos:superslim:0.4.13'
    compile 'me.zhanghai.android.materialprogressbar:library:1.3.0'
    compile 'com.makeramen:roundedimageview:2.3.0'
    compile 'com.yqritc:android-scalablevideoview:1.0.4'

    //rx
    compile 'io.reactivex:rxandroid:1.2.1'
    compile 'io.reactivex:rxjava:1.2.6'
    compile 'com.jakewharton.rxbinding:rxbinding:1.0.0'

    //retrofit
    compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'
    compile 'com.squareup.okhttp3:logging-interceptor:3.6.0'

    // okhttp
    compile 'com.squareup.okhttp3:okhttp:3.6.0'

    //dagger
    apt 'com.google.dagger:dagger-compiler:2.8'
    compile 'com.google.dagger:dagger:2.8'

    // ORMLite
    compile 'com.j256.ormlite:ormlite-core:5.0'
    compile 'com.j256.ormlite:ormlite-android:5.0'

    // picasso
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0'

    // facebook
    compile 'com.facebook.android:facebook-android-sdk:4.12.0'

    // analytics
    compile 'com.localytics.android:library:4.2.0'

    // cryptography
    compile 'com.madgag.spongycastle:prov:<IP_ADDRESS>'
    compile 'com.jakewharton.hugo:hugo-annotations:1.2.1'
}

and we use some native code (C++)

Sorry, but I don't see moxy-dependency at this build.gradle. Whatever, I don't see there some problems. I can advice you to change sample-github to your project, and then you can find difference -- it can help us ;)

sorry, it copy-pasted from dev version without moxy
my moxy integration
    compile 'com.arello-mobile:moxy:1.4.5'
    apt 'com.arello-mobile:moxy-compiler:1.4.5'
    compile 'com.arello-mobile:moxy-android:1.4.5'
    compile 'com.arello-mobile:moxy-app-compat:1.4.5'

So, problem was because we have module :core
And I add dependencies to this module
So I added
apt 'com.arello-mobile:moxy-compiler:1.4.5'

to app module, and the problem was solved :)

I've got the same problem if I using Kotlin in project.
For fix it use
kapt 'com.arello-mobile:moxy-compiler:1.4.5'


(Win10) Wasm server crashes on startup

First, small fix for readme:
cargo run --example simple --no-default-features --features use-webrtc -- --server
(missing --no-default-features)
This is the error:
PS C:\Projects-temp\bevy_networking_turbulence> cargo run --example simple --no-default-features --features use-webrtc -- --server
Finished dev [unoptimized + debuginfo] target(s) in 0.26s
Running `target\debug\examples\simple.exe --server`
error: process didn't exit successfully: `target\debug\examples\simple.exe --server` (exit code: 0xc0000135, STATUS_DLL_NOT_FOUND)

STATUS_DLL_NOT_FOUND
Most definitely a windows-specific error!
It is triggered when calling net.listen. I will dig and see if I can trace it further.

I traced this down to the openssl crate. It's a bit finicky on windows.
In my case I needed to add C:\Projects\vcpkg\packages\openssl_x64-windows\bin to path.
Related reading:
https://github.com/sfackler/rust-openssl/issues/1062

--no-default-features is already fixed on master.
And yeah - OpenSSL is PITA on Windows. I don't even remember how I did configure it.
IIRC I downloaded the windows build and had to set:
OPENSSL_DIR=C:\Program Files\OpenSSL-Win64\bin
OPENSSL_INCLUDE_DIR=C:\Program Files\OpenSSL-Win64\include
OPENSSL_LIB_DIR=C:\Program Files\OpenSSL-Win64\lib


[WIP] Use consistent mediator options

TODO

[ ] Map intent -> signupIntent for interim
[x] Review with @junybrum or @anipetrov tomorrow

Moving this work to https://github.com/artsy/force/pull/2631 so it doesn't conflict with how we use signupIntent currently.


using gird + enabled loop not working as expected

Check that this is really a bug

[ ] I confirm

Reproduction link
https://codesandbox.io/s/swiper-slides-grid-react-forked-zinob?file=/src/App.jsx
Bug description
when using grid={ { rows: 2 } } along with loop, the loop mode is just working in one side of the swiper and the other side is not sliding anymore when it reaches the end.
Expected Behavior
swiper slides infinitely from both sides
Actual Behavior
swiper slides infinitely from only one side
Swiper version
7.3.1
Platform/Target and Browser Versions
Chromium 96.0.4664.93 Arch Linux
Validations

[X] Follow our Code of Conduct
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
[X] Make sure this is a Swiper issue and not a framework-specific issue

Would you like to open a PR for this bug?

[ ] I'm willing to open a PR

I can confirm this is happening even on the latest version - 8.0.6

same bug too

I have the same problem, is there a solution? "swiper": "8.0.7"

Me too  "swiper": "^8.4.4"

Document says it doesn't work.
rows > 1 is currently not compatible with loop mode (loop: true)

https://swiperjs.com/swiper-api

Swiper v9 comes with fully reworked and now different loop functionality. If you have similar issues in Swiper 9, open a new issue with a CodeSandbox showing the issue.


Finalize 1.0 API

Decide whether ignoreSelector belongs here. Is something simpler possible?
Decide whether to remove limit which doesn't seem to belong here.

Done and API docs added.


Allows the Option in Acceptor setting in the setup file

description
Currently, Option in Collector's PinpointServerAcceptor settings are forced to be programmatically.
Will change to allows the Option in Collector's PinpointServerAcceptor setting in the setup file(pinpoint-collector.properties).
Then, User can customize it for user's environment.

closed via #4351


⚠ Fetchers has degraded performance

In 6cfc18d, Fetchers ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 264 ms

Resolved: Fetchers performance has improved in d65d002.


is it possible to have generic pre-release tags?

I'm ferly new to CI/CD pipelines, so forgive me for my blasphemy.
Currently I'm doing something like this:
- name: Extract metadata for Docker image
    id: meta
    uses: docker/metadata-action@v4
    with:
      images: ${{ env.GHCR_IMAGE }}
      tags: |
        type=semver,pattern={{version}}
        type=semver,pattern={{major}}.{{minor}}
        type=semver,pattern={{major}}

But how I am able to keep a rc, beta and alpha generic tags always up to date, much like a latest tag?
I've been reading the README and #276, and if I understood them correctly atm we only manage specific version for pre-release tags.
How could we get something like:

Event
Ref
Docker Tags

push tag
refs/tags/v1.2.3
1.2.3, 1.2, latest

push tag
refs/tags/v2.0.8-rc.101
2.0.8-rc.101, rc

push tag
refs/tags/v2.1.2-beta.67
2.1.2-beta.67, beta

Use case
In a CD fractioned ingress/load balancer this would help in gathering useful data for those pre-release versions.
Like: for those smaller projects that is enough to go production with latest, a full stack dev could route 95% of the traffic to it and the remaining 5% to a rc deploy, gathering useful information for final bug-fixing.

It would be much like an edge release for a node package, always up to date with the latest commits. So there are already use cases for this.
What about making it disabled by default?

Not to mention that currently in order to run runtime tests for pre-production requires manual intervention for selecting the desired rc, beta or alpha. Breaking the concept for CI/CD.
Moreover, we do agree that this could be easily dealt with an additional action triggered after the main one, but this could lead to increased maintainance complexity and costs.

I've read the readme, so I'm aware of the type=edge.
But the key difference is that the use of edge would create a single tag for all three. While it is important to keep difference between alpha, beta and rc stages (and tests).
Even though I'm not confident enough in js/ts I wanted to open up a pull request anyway, but as soon as I looked at the code I've seen the problem: there is too much manual use of the latest tag check, making a refactor a must just to implement them.
Once I get some free time I'll hope to help with this, but for the meantime could you tag this issue as not planned instead of completed? There is a clear difference between the elaborated feature request and what is actually available.


Refactor fields of RubyTimeParsed

Some more refactoring in RubyTimeParsed so that it can use RubyTimeParsed's fields directly in toTimestamp and asMapLikeRubyHash without converting getters.
@muga @sakama Can you PTAL?

Thanks!


Add anonymized_record function to sequence.go

Hey, Tim
I make the anonymized_record function. Basically it's try to anonymized information of the sequence object and features. I re-implement this function from easy_dna. This is the permalink: anonymized_record from easy_dna).
Here you can see the tests in easy_dna for this functionality.

Hey, Tim.
I make some commits to correct this problem. Let me know if I need to correct more things for this PR.

@isaacguerreir and I discovered that the reference implementation he was using didn't actually anonymize records and now we're just confused as to what this was supposed to be. Definitely a miscommunication on my end. Closing for now but could open back up in future.


Program doesn't treat words with special characters

🔱 Issue subject

[x] 👽 Bug
[ ] 🔥 New feature proposal
[ ] 💭 Idea/need
[ ] ❓ Other

📝 Description

👽 Bug

Searching for a word containing a character not included in the ASCII table, such as "á", "ç", and "ã".

@edusporto, do you want to help to fix it? I think we just need a slugify function here:
https://github.com/felipemfp/sinonimos-cli/blob/master/src/sinonimos/main.go#L60
If you would use go-slugify, it should look something like this:
resp, err := http.Get(fmt.Sprintf("https://www.sinonimos.com.br/%s/", slugify.Marshal(expression)))

Sure!


Connection based server settings.

Feature request
Configure server based on local wifi
Description
Not sure if it is an issue for anyone else but I am unable to connect to SickRage when I am on a local network with the server due to the app pointing toward my external IP. If it's not a config issue in my end it would be helpful to have an option for setting a SSID to force ShowsRage to use a local ip instead of a public one.

I am using my external IP too and it works just fine when I am connected to my local network.
I am planning on adding multi-host support in a future release (1.6 or 2.0 probably). This will allow you to have one configuration with your external IP and one with your locale IP.


feat(taskscheduler): allow to use custom scheduler for shards

When shardTestFiles is true, specs will be sharded by file. (i.e. every test file is executed in separated browser instance).
This behavior can now be customized by providing custom shard scheduler function which allows to run multiple specs in one browser instance. For example we can run same amount of specs in each browser instance.

I signed it!


Empty parent directories are not preserved with --outDir

I have a source structure in which there is a single top-level directory, and I expect the same structure to be produced in the outDir, instead it is dropped. It seems that tsc trims singleton parent directories.
That behavior is okay, but I would like to be able to explicitly say what the baseDir is, and have the output structure match the input, relative to the baseDir.
Here is a session which demonstrates the problem:
alexeagle-macbookpro2:tmp alexeagle$ mkdir -p dir1/dir2/dir3
alexeagle-macbookpro2:tmp alexeagle$ cat > dir1/dir2/dir3/test3.ts
console.log("dir3");
alexeagle-macbookpro2:tmp alexeagle$ mkdir out
alexeagle-macbookpro2:tmp alexeagle$ tsc --outDir out dir1/dir2/dir3/test3.ts
alexeagle-macbookpro2:tmp alexeagle$ ls out/
test3.js
alexeagle-macbookpro2:tmp alexeagle$ cat > dir1/dir2/test2.ts
console.log('dir2');
alexeagle-macbookpro2:tmp alexeagle$ tsc --outDir out dir1/dir2/dir3/test3.ts dir1/dir2/test2.ts
alexeagle-macbookpro2:tmp alexeagle$ ls out
dir3	test2.js

It's kind of surprising that by adding a file in dir2, the test3.js file has disappeared from the outDir.

This is something we need to add. The current behaviour is that the basePath/CommonSourceRoot/ProjectRoot is computed as the longest common directory of all source files. and that is what is used to replicate the input structure under the output directory..
We have discussed this issue before in https://github.com/Microsoft/TypeScript/pull/2034#issuecomment-87891192


⚠ gorzdrav.org has degraded performance

In 220de03, gorzdrav.org (https://gorzdrav.org) experienced degraded performance:

HTTP code: 200
Response time: 4257 ms

Resolved: gorzdrav.org performance has improved in 5f4c2d4.


[1.19.x] modrinth support

Is your feature request related to a problem? Please describe.
Although this mod is available for 1.20.x, the page in Modrinth lacks support for 1.19.x, in particular 1.19.2.
Describe the solution you'd like
It would be convenient for the version supports between Modrinth and Curseforge to be on par or near par.
Additional context
This is a factor of convenience for players to do faster mod updates via launchers thanks to its more efficient API versus Curseforge.

That is a valid request, but currently I don't have the time to update the workflows on 1.19.2, as I would also have to update Modonomicon and Theurgy in order to ensure the dependencies are available.
That said, if anyone wants to update the github actions I will run a release

I have submitted pull requests of the needed actions for Occultism specifically. They may not be 100% functional, but the edits are intended for Modrinth inclusion.
I will get on the dependencies.

And accomplished. I have pull requests for Modonomicon and Theurgy.

That is absolutely fantastic, thank you. I will try to review them ASAP

Looks good! I closed some of the lower version PRs as they would not work as is and as the versions have not been supported in a long while ( and I do not want to trigger a new wave of support requests from users that see activity), but merged the others.
Thanks a lot!


Clicking code action in "F8" popup doesn't refresh code fix actions/close dialog = possibility of duplicate actions

VSCode Version: 1.4
OS Version: Windows 10

I've implemented a code fix provider but hit a bit of a snag. Assume the following code:
myFunc() {
  myFun(); // <-- Typo
}

I get a code fix here that says "change myFun() to myFunc()" and provides an edit which inserts a c at the correct position.
If I click the lightbulb and apply it, everything is fine; the change is applied, the menu closes.
However, if I hit F8 and click the link in the popup:

The edit is applied (I'm doing this via workspace.applyEdit() in a command) but the link remains on the screen. This means you can click it a second time and it inserts a second c (and a third...).
Now, I could keep track of this by mutating the source edit object and refusing to apply it a second time; but it seems to me that Code should do something here; either re-request code-fixes for this location or close the popup when it's applied?
(It's possible it already should do something like this and I've implemented something incorrectly; but I've been struggling to find it, and I can't find any good examples of others that have already implemented this properly to step through).

Related: If I hit F8 to open this window, then type some changes in the editor, then clicking the link applies a stale code fix, which means nothing matches up.
Note: My language service can only provide fixes for a single point (not a range), so there's a chance that's the cause of this (eg. I always have to take the start of the Range code gives me and drop the rest), though I'm not sure?

It's by design that the widget doesn't update when the markers change. We figured it's too noisy otherwise. Also what should really happen? Close? Jump to next/prev marker? However those decisions were made before we added the quick fixes to the widget. I see how those should reconcile when the document changes.

@jrieken Am I right in thinking I can test this in Insiders from tomorrow?

yep. we now listen to marker updates. If the F8 windows still shows at a marker we reconcile the quick fixes, else we hide quick fixes. Also the border changes. Like so:

So, it is important to update the diagnostics (since that is driving quick fixes). My sample code goes like this
    const diag = vscode.languages.createDiagnosticCollection();

    vscode.commands.registerCommand('extension.sayHello', function (range) {
        // console.log(range, arguments);
        diag.forEach((uri, all) => {
            let rest = all.filter(d => !d.range.isEqual(range));
            diag.set(uri, rest);
        })
    });

    vscode.workspace.onDidChangeTextDocument(e => {
        if (e.document.languageId === 'abc') {

            const d: vscode.Diagnostic[] = [];
            const text = e.document.getText();
            let idx: number;
            while ((idx = text.indexOf('abc', idx)) >= 0) {
                let range = e.document.getWordRangeAtPosition(e.document.positionAt(idx));
                if (range) {
                    let len = d.push(new vscode.Diagnostic(range, 'I am an error diagnostic'));
                    d[len - 1].code = 42;
                }

                idx += 3;
            }

            diag.set(e.document.uri, d);
        }
    });

    vscode.languages.registerCodeActionsProvider('abc', {
        provideCodeActions(doc, range, ctx) {
            const result: vscode.Command[] = [];
            ctx.diagnostics.some(d => {
                if (d.code === 42) {
                    result.push({
                        title: 'Remove this error...',
                        command: 'extension.sayHello',
                        arguments: [d.range]
                    })
                    return true;
                }
            });
            return result;
        }
    })

Excellent, thanks! Our document edits will automatically trigger re-calculation of diagnostics so they'll be updated as new ones arrive/we're told to clear them.
I'll give it a test tomorrow and ensure it's all working together. Thanks again! :+1:  :smile:

@jrieken After playing with this, I think still having the diagnostic text hang around even though it's been fixed (the squiggle gone and gone from problems list) is a bit confusing; it looks like a bug that the error wasn't cleared (it references a misspelled call that doesn't exist anymore).

I'm not sure it would be all that bad hiding the popup if the diagnostic gets removed?

@jrieken Sorta-related, if the diagnostic gets replaced (eg. the text changes because you edit the document) it also doesn't update, so you end up with an incorrectly-worded diagnostic in the popup.
See here, I edit the doc so that mai is mi and the diagnostic in the problems window updates, but not the popup.

btw, the lightbulb/Ctrl+. feature and this popup seem to be almost entirely the same (except the popup shows the diagnostic text); seems a bit strange to have two features that are so similar?

@jrieken Sorry for all the comments! Also noticed that when you have this popup open, any keypress seems to remove focus from the editor, so it's impossible to edit the document (first keypress works, further keypresses do not)!

Verified that the errors go away in the F8 widget when apply a quick fix.
@DanTup I suggest you file all follow-up items as separate issues.

I've raised new issues; I'll try to avoid tagging related things on to the end in future and just create new cases. Btw, this functionality is awesome when working; thanks! :+1:


Calculate beta with static_code on F.BatchNormalization.forward

Closes #8324
When using static_graph, if the Link.forward allocates some intermediate array constant (zeros) and the associated function does not retain this input, the static graph fails when calling forward, as this input won't be correctly retrieved.
Solves this issue by allocating beta inside of a static_code function as described by:
https://docs.chainer.org/en/stable/reference/static_graph_design.html
An alternative could be to retain beta in the function forward, but beta is not being used in gradient calculation, hence it does not respect the semantics of retain_inputs.
Minimum example to reproduce
import chainer
import chainer.links as L
import numpy

class TestBN(chainer.Chain):
    def __init__(self):
        super(TestBN, self).__init__()
        with self.init_scope():
            self.link = L.BatchNormalization(64, use_beta=False)

    @chainer.static_graph
    def __call__(self, x):
        self.link(x)

x = numpy.random.uniform(
    -1, 1, (10, 64)).astype(numpy.float32)
x = chainer.Variable(x)

chain = TestBN()
chain(x)

Does this apply to gamma as well and if so, should we fix it in this same PR?

gamma is actually retained so it doesnt fail 😂

Do you think we should test this?

What do you think of adding a BatchNormalization layer to  the MLPs in tests/chainer_tests/graph_optimization_tests/test_static_graph_models.py

I was thinking of a test for this particular link, but that's okay too. That might better align with existing tests actually.

Actually is not testing links other than Linear, so maybe these tests should be reworked somehow

It's documented in static_graph.py that the static graph optimization is an experimental feature still, so I'm not sure how much effort we want to put into working on the coverage. If there's a high demand we might want to stabilize the API of this feature (or else, adding to the existing test file as you suggested sounds fine to me.)

I added a specific for BatchNormalization and also gamma is now static_code as you initially suggested! sorry I missed it.
the test unveiled a case where it was needed.

Jenkins, test this please

Jenkins CI test (for commit a0b225d5e057c1144520baa568ac64f3dc021eed, target branch master) succeeded!

Thanks for prompt review 🙇♂


9051 Imported shared Effective Date Time components

Issue #: /bcgov/entity#9051
Description of changes:

app version: 3.0.17
imported shared DatePicker and EffectiveDateTime components
imported new enum
imported new interface
deleted local components/ enum/ interface/ unit test
commented out code to restore Future Effective data (per PO)
misc cleanup

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the bcrs-entities-create-ui license (Apache 2.0).

I'm looking into a weird new build error...


Auth

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

50 of 51 (98.04%)  changed or added relevant lines in 7 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.4%) to 92.813%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/resources/api/users/usecase/auth/logout.usecase.ts
0
1
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/resources/api/users/repository/index.ts
1
80.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.4%

Covered Lines:
249

Relevant Lines:
258

💛  - Coveralls


[Ubuntu] g-dbus-error-quark: The name org.freedesktop.secrets was not provided by any .service files (2)

Description
The latest ubuntu-latest or ubuntu-20.04 version 2.296.0 and 2.296.1 fails to run poetry install (poetry is a Python's package manager) with the following error log:
https://github.com/mai-nakagawa/test-runner-images/runs/8200561159?check_suite_focus=true

g-dbus-error-quark: The name org.freedesktop.secrets was not provided by any .service files (2)

The workaround is to add sudo apt install gnome-keyring beforehand:
https://github.com/mai-nakagawa/test-runner-images/runs/8200631090?check_suite_focus=true
Platforms affected

[ ] Azure DevOps
[X] GitHub Actions

Virtual environments affected

[ ] Ubuntu 18.04
[X] Ubuntu 20.04
[X] Ubuntu 22.04
[ ] macOS 10.15
[ ] macOS 11
[ ] macOS 12
[ ] Windows Server 2019
[ ] Windows Server 2022

Image version and build link
https://github.com/mai-nakagawa/test-runner-images/runs/8200561159?check_suite_focus=true
Is it regression?
Yes, the issue didn't persist w/ 2.295.0
Expected behavior
poetry install succeeds
Actual behavior
poetry install fails with:
g-dbus-error-quark: The name org.freedesktop.secrets was not provided by any .service files (2)

Repro steps

Fork https://github.com/mai-nakagawa/test-runner-images
Remove this line
Run the CI and you'll see the error
Restore the line you removed in the 2nd step
Run the CI and you won't see the error

Hey @mai-nakagawa.
We will take a look at it.

@mai-nakagawa, I have found out a couple of relative issues: https://github.com/python-poetry/poetry/issues/2692 https://github.com/python-poetry/poetry/issues/6277 https://github.com/pypa/pip/issues/6773
env:
  PYTHON_KEYRING_BACKEND: keyring.backends.null.Keyring

I am planning to close as external. Feel free to open it if you have any concerns.

Thanks @al-cheb for your quick investigation. Understood the root cause and the solution!

@mai-nakagawa, I have found out a couple of relative issues: python-poetry/poetry#2692 python-poetry/poetry#6277 pypa/pip#6773
env:
  PYTHON_KEYRING_BACKEND: keyring.backends.null.Keyring

thks man, works for me!


undefined is not an object (evaluating 'component._instance')

Is this a bug report?
Yes

Have you read the Bugs section of the How to Contribute guide?
Yes

Environment

react-native -v:
react-native-cli: 2.0.1
react-native: 0.46.4
node -v: 6.11.1
npm -v: 5.3.0
yarn --version: 0.27.5
react-devtools: 2.5.0

Then, specify:

Target Platform: Android

Development Operating System: Windows 10

Build tools: Android Studio

Steps to Reproduce

(Write your steps here:)

create new empty app using react-native init AwesomeProject
install genymotion and launch this app.
install react-devtools and open it.
in emulator window click Menu button and select "Toggle Inspector"
Click on any text node from the sample app.

Expected Behavior
Select the corresponding component in react devtools.

(Write what you thought would happen.)
Actual Behavior
Getting the red screen with the following error:

undefined is not an object (evaluating 'component._instance')
getHostProps
D:\RN\AwesomeProject\node_modules\react-native\Libraries\Renderer\ReactNativeStack-dev.js:2314:29
getInspectorDataForViewTag
D:\RN\AwesomeProject\node_modules\react-native\Libraries\Renderer\ReactNativeStack-dev.js:2334:259
onTouchViewTag
D:\RN\AwesomeProject\node_modules\react-native\Libraries\Inspector\Inspector.js:175:44
proxiedMethod
D:\RN\AwesomeProject\node_modules\react-proxy\modules\createPrototypeProxy.js:44:35

D:\RN\AwesomeProject\node_modules\react-native\Libraries\Inspector\InspectorOverlay.js:51:34
__invokeCallback
D:\RN\AwesomeProject\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:301:19

D:\RN\AwesomeProject\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:118:28
__guard
D:\RN\AwesomeProject\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:228:6
invokeCallbackAndReturnFlushedQueue
D:\RN\AwesomeProject\node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:117:17

This seem to happen only when I click the Text component. Clicking on View component for example works fine.
I tested this on android 6.0 and android 7.1 on nexus 5 device.

Reproducible Demo
I'm experiencing this on a new project generated using react-native init AwesomeProject. No custom code added!
I made a small screen recording:
https://drive.google.com/file/d/0B7Ls870jI1CLeFRyaTRjWVV4YVU/view

sounds like a bug with react-devtools? can you repro it without react-devtools? if not, please create the issue on that repo instead

I have the exact same problem, this happend to me with and without react-devtools. Whenever I inspect  a Text, I get this error.

Same issue here.

same issue

I also am running into this, also on Android (never iOS yet).
react-native-cli: 2.0.1
react-native: 0.46.4
mac os x 10.12.6
(I haven't noticed a way to get the inspector overlay to let me click on things underneath it? Afaict I have to click on something else visible such that the inspector overlay then moves to the top of the screen, to be able to click on something that was underneath it? I am stuck because the other things are text fields.)

Same

I have reported the same issue on react-devtools repository as well. No 'official' response so far.
https://github.com/facebook/react-devtools/issues/859


Add images to ExpensifyHelp

Details
Adding images as part of the help site migration.
Following this SO

I have read the CLA Document and I hereby sign the CLA

🚀 Deployed to staging by https://github.com/deetergp in version: 1.3.77-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/mountiny in version: 1.3.77-7 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


Bottom container height without anchor point

Hey! First of all, awesome library!
I'm trying to set the hight of the expanded bottom sheet without using an anchor point but I can't seem to find any option to do that. Is it possible to get a prop that sets that?
Best wishes!

Hi, thanks for reaching out,
You can set the height of the bottom sheet by manually setting the hight of the inner <View />, like on the SimpleView.js example https://github.com/cesardeazevedo/react-native-bottom-sheet-behavior/blob/master/example/views/SimpleView.js#L105
Let me know if you got it.

Thanks for the answer! Yes, that works!
I'm aware this might be suitable for another issue, but what I'm essentially trying to do is recreating the maps example but with the BottomContentHeader when I'm in the expanded view because I need to have another navigation once I'm in expanded view to control the ScrollView inside the container. Since using ScrollView only works when either not using the anchor point or when using the MergedAppBar (at least from what I understood of the library so far), I need to implement a custom design for the MergedAppBar, which is not possible.
My idea now would be to set the height of the Content to the screen height once the User scrolls higher than the expanded position.
Maybe you know another way of achieving this?
Thank you very much!

I think i am really confused now 😅, do you have a visual example on what you are trying to do?

Yes sure!
I built a navigation that controls the content of a scrollview and of the content container behind the BottomSheetBehaviour. Collapsed it looks like this:

I don't need scrolling behaviour when in anchor state, so at the anchor, it should look like this:

But in expanded state, I need the navigation, that I put in the Header to be sticking to the top of the screen with a scrollable list below:

I know that it is possible to achieve scrolling when using the MergedAppBarLayout, but that merges the top bar and it is not possible to customize the header the way I need it.
I tried putting an absolute view on top of the scroll view, but it wouldn't display correctly within the CoordinatorLayout.
Thanks for your help! :)

I have a better understanding now, thanks for clarify, The MergedAppBarLayout is indeed very hard to customized, i think i did something similar on the past, so let me play around and i will back to you.

Is something like this you're trying to achieve?

Yes, something like that, but with the user being to also scroll down in the expanded state! :)

Yeah indeed, i think it's a bug on the NestedScrollView that i need to investigate further, if you want to play around, i have this gist so far. https://gist.github.com/cesardeazevedo/e29b3ef261ba5053b614e52dea40f83b

I will check it out and let you know if I find something!
Thanks for your help though! :)

Am 18.04.2019 um 10:04 schrieb César Augusto<EMAIL_ADDRESS>Yeah indeed, i think it's a bug on the NestedScrollView that i need to investigate further, if you want to play around, i have this gist so far. https://gist.github.com/cesardeazevedo/e29b3ef261ba5053b614e52dea40f83b https://gist.github.com/cesardeazevedo/e29b3ef261ba5053b614e52dea40f83b
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/cesardeazevedo/react-native-bottom-sheet-behavior/issues/52#issuecomment-484398364, or mute the thread https://github.com/notifications/unsubscribe-auth/ABOFHOTWF3D4UPP5XT54VZTPRATRHANCNFSM4HGTLWMA.


Premier Sports 1 UK

Source
https://www.ontvtonight.com/uk/guide/listings/channel/69042004/premier-sports.html
Channels
Premier Sports 1 UK
Notes
No response

Channel is now called Viaplay Sports 1 (ViaplaySports1.uk)
Available in UK and IE guides
https://iptv-org.github.io/epg/guides/ie.xml
https://iptv-org.github.io/epg/guides/uk.xml


congr_arg unification failure

import Lean
open List Lean

example (l : List α) (h : length l = length l) : length (a::l) = length (a::l) :=
  congrArg (·+1) h
-- type mismatch
--   congrArg (fun a => a + 1) h
-- has type
--   length l + 1 = length l + 1 : Prop
-- but is expected to have type
--   length (a :: l) = length (a :: l) : Prop

elab:max "(" tm:term ":)" : term => Elab.Term.elabTerm tm none

example (l : List α) (h : length l = length l) : length (a::l) = length (a::l) :=
  (congrArg (·+1) h :)
-- type mismatch
--   congrArg (fun a => a + 1) h
-- has type
--   length l + 1 = length l + 1 : Prop
-- but is expected to have type
--   length (a :: l) = length (a :: l) : Prop

example (l : List α) (h : length l = length l) : length (a::l) = length (a::l) :=
  have := congrArg (·+1) h; this
-- type mismatch
--   this
-- has type
--   (fun a => a + 1) (length l) = (fun a => a + 1) (length l) : Prop
-- but is expected to have type
--   length (a :: l) = length (a :: l) : Prop

example (l : List α) (h : length l = length l) : length (a::l) = length (a::l) := by
  have := congrArg (·+1) h; exact this -- ok

This is a recent regression extracted from mathlib4. It could be related to elabAsElim? congrArg is notable for being a theorem where the standard "backward" elaboration heuristic fails; the old lean 3 trick of using (e : _) to hide the expected type doesn't work anymore, but I've simulated it with a (e :) notation in this example.

the old lean 3 trick of using (e : _) to hide the expected type doesn't work anymore

This trick does not work because Lean 4 may postpone the elaboration of subterms when the expected type is not known.
Note that the notation ( .. :)  may not achieve the desired effect. Example:
def f (x : Nat) := x

example : Nat :=
  f (.zero :) -- Works.

The elaboration of .zero is postponed, and eventually Lean finds out that its type is a Nat.
The following variant uses the withSynthetize to force any pending problems to be resolved before succeeding.
open Lean in
elab:max "(" tm:term ":)" : term => Elab.Term.withSynthesize <| Elab.Term.elabTerm tm none

example : Nat :=
  f ( .zero :) -- Error

I don't think we necessarily want to completely hide the expected type when using (e :); rather, we want e to be first elaborated without the expected type and then the resulting type should be unified against the expected type. The main issue is that we want to prevent the f x =?= g y :- f =?= g, x =?= y heuristic from triggering.
In the presence of postponement, I'm not exactly sure whether this does the trick. What does by have' := e; exact this do? It seems to have approximately the right behavior, except that it gets postponed after everything because it's a by block.

What does by have' := e; exact this do?

It is expanded to
by refine_lift' have := e; ?_
   exact this

refine_lift' is a refine variant that disables implicit lambdas and makes sure the hole for ?_ is the first one in the list of subgoals for the refine.
The refine tactics force pending elaboration problems to be resolved before succeeding. So, it is essentially doing what withSynthesize did in the example above.


Blocking code is not always properly handled

Reproduction
import monix.eval.Task
import monix.execution.Scheduler

object Bug extends App {
  implicit val scheduler: Scheduler = Scheduler.forkJoin(1, 128)

  val task = Task.async[Unit](_.onSuccess(())).map { _ =>
    Task.evalAsync(println("foo")).runSyncUnsafe()
  }
  task.executeAsync.runSyncUnsafe()
}

Current behaviour
Deadlock
Expectation
No deadlock. The blocking .runSyncUnsafe() call should prompt the underlying thread pool to allocate a new thread in place of the blocked one.
Analysis
The culprit is monix.execution.internal.Trampoline.trampolineContext which overrides the parent BlockContext that is responsible for wrapping the blocking code in ForkJoinPool.managedBlock

Thanks for the analysis @ghik, needs to be investigated.

Hi, IMO this bug should target 3.x series - we needed to build and maintain our own version with the fix from #1544 included.

@ghik thanks. I merged the PR. Will plan for a new 3.x release.


How to deproject a pixel in color frame to 3d coordinates using D400 series?

Before opening a new issue, we wanted to provide you with some useful suggestions (Click "Preview" above for a better view):

Consider checking out SDK examples.
Have you looked in our documentations?
Is you question a frequently asked one?
Try searching our GitHub Issues (open and closed) for a similar issue.

All users are welcomed to report bugs, ask questions, suggest or request enhancements and generally feel free to open new issue, even if they haven't followed any of the suggestions above :)

Required Info

Camera Model
D400

Operating System & Version
Linux (Ubuntu 16）

SDK Version
2.10.1

Language
Python

Issue Description
As refers to the document of Projection in RealSense SDK 2.0, I know the we can't directly deproject a pixel from RGB to 3d coordinate. I wonder whether the follow codes are right to deproject from RGB to 3d coordinates.
##Firstly align the depth frame to color frame
align_to = rs.stream.color
align = rs.align(align_to)
while true:
    # Wait for a coherent pair of frames: depth and color
        frames = pipeline.wait_for_frames()
         frames = align.process(frames)
         depth_frame = frames.get_depth_frame()
         depth_intrin = depth_frame.profile.as_video_stream_profile().intrinsics
         color_intrin = color_frame.profile.as_video_stream_profile().intrinsics
         color_frame = frames.get_color_frame()
          if not depth_frame or not color_frame:
              continue
           #Get the  depth value
           depth = depth_frame.get_distance(100, 100)
           depth_point = rs.rs2_deproject_pixel_to_point(depth_intrin, [100, 100], depth)

I refer to 1904, but it ignores the process with alignment. But I'm not sure with above codes, because after the alignment, can we still use the "depth_intrin" to depreject a depth pixel?

That is correct.
Note that after align.process(...) the depth frame transform in terms of intrinsic and possibly resolution.
What you'd expect is that in the above code depth_intrin == color_intrin.
After that, de-projecting the modified depth using the modified intrinsic will work correctly (with small fluctuations)

@ev-mp Thanks~ Copy that.


Mem pattern scan issue

When i load the cheat i got a Scan pattern error, how can i fix this? Older versions always worked....

What error do you get?

The addresses are always diff....

One thing I did, deleted all "(const char8_t*)" because I had compile errors.
I'm a paster so don't know if this caused the issue...

You are using older version of the source code.

Gonna try again... Ty for reply tho!


Make PullRequestLabelPagureEvent JSON serializable

The "labels" attribute of the class was defined as a set, but sets are
not JSON serializable. Change it to be a list instead and add a test to
check that the class is serializable.
Signed-off-by: Hunor Csomortáni<EMAIL_ADDRESS>

Yes, this or have the PullRequestLabelPagureEvent.labels as a list instead of the set so that we don't convert back and forth (https://github.com/packit/packit-service/blob/master/packit_service/worker/parser.py#L1007)

@jpopelka yeah, this is a good idea and I did just that. Please take another look! :)


HomeSeer doesn't show up in the configuration -> Integration

Hi,
I have tried to install this custom component without success. I can install it in HACS and it showed up properly in HACS but when I try to search for it in the configuration -> Integration it cannot be found so I cannot set it up. Does anyone know how to fix this?

Did you restart HA after installing it in HACS? That's required before it will show up in Configuration->Integrations.

Several time...it didn't work. I also restarted my VM and after second restart it showed up... setting it up now


Refactor to use next.js

Use Next.js to handle SSR.

Happy to help with this one. Let me know if you have a game plan in place already.


ListItemSecondaryAction in MenuItem makes  inside

ListItemSecondaryAction in MenuItem cause Warning: validateDOMNesting(...): <li> cannot appear as a descendant of <li>.

[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior

inside component should be div.
Current Behavior

inside component becomes li.
Steps to Reproduce (for bugs)

https://codesandbox.io/s/2z43ov89vn
Context

ListItem has component and ContainerComponent props, but MenuItem has only component props.
To fix this warning, remove component defaultProps and add ContainerComponent defaultProps as li in MenuItem and pass it to ListItem (keep same props between these component).
Or, pass MenuItem's component props to ListItem as ContainerComponent.
related pr #10050
If you want, I will send pr to fix this.
Your Environment

Tech
Version

Material-UI
next(1.0.0-beta.35)

React
latest(16.2.0)

browser
any

etc

@fmy The issue comes from the fact that the MenuItem is asking his children to render as a li.
The ListItem is answering this requirement. But at the same time, the ListItemSecondaryAction usage requires the use of a wrapping li element. Hence li > li.
Workaround:
      <List>
-       <MenuItem>
+       <MenuItem component="div">
          <ListItemText primary="Inbox" />
          <ListItemSecondaryAction>
            <IconButton>
              <InboxIcon />
            </IconButton>
          </ListItemSecondaryAction>
        </MenuItem>
      </List>

We could look into improving the logic to prevent it in the first place.
Maybe:
Component = ContainerComponent === 'li' && Component === 'li' ? 'div' : Component;

Instead of:
https://github.com/mui-org/material-ui/blob/8898a8da3e29fbbeea514fd81123392da2afb8ea/src/List/ListItem.js#L116

@oliviertassinari Thanks, I will use this workaround.
This is just my opinion but I think MenuItem's component props should have same meaning with ListItem's one because they are inheritance relation.

What make you think they don't have the same meaning? I think they do. The tricky part is the wrapping element that gets added for not nesting the buttons. Remove the MenuItem and you will get the same issue.


Improve description and preferences

Minor improvements to the extension description and preferences:

Updated extension description. It is a bit bland, but shorter/concise and matches other extensions more.
Moved memory minimum from text to be enforced (like disk size is), and made the two descriptions consistent and match other preferences.
Used markdown to change link to pull secret into a real link. Easier to copy for now; will be clickable once [1] is fixed.

Fixes #68.
[1] https://github.com/containers/podman-desktop/issues/2230

Superceded by #96


[TPU CI] Use timestamp+pythonVersion to form the docker image tag.

What does this PR do?
Fix a bug in the TPU CI. Right now, runs use $GITHUB_RUN_ID which is the same for all values in matrix. This means the python3.6 and python3.7 tests end up with the same tag, which means which can lead to one job using the other's image accidentally or race conditions in image delete that leads to failures like: https://github.com/PyTorchLightning/pytorch-lightning/runs/1195442348?check_suite_focus=true
Fixes # (issue)
Before submitting

[ ] Was this discussed/approved via a Github issue? (no need for typos and docs improvements)
[ ] Did you read the contributor guideline, Pull Request section?
[ ] Did you make sure your PR does only one thing, instead of bundling different changes together? Otherwise, we ask you to create a separate PR for every change.
[ ] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests?
[ ] Did you verify new and existing tests pass locally with your changes?
[ ] If you made a notable change (that affects users), did you update the CHANGELOG?

PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

Test run to make sure the new env var works:
https://github.com/PyTorchLightning/pytorch-lightning/runs/1196318727?check_suite_focus=true


When adding a new value type or numeric field a default value is added to the migration

From @YandyZaldivar Nov 16th
Let´s try this for second time. See original issue here PomeloFoundation/Pomelo.EntityFrameworkCore.MySql#39
I am back to development and I have a pending (closed issue) with you.
When I add a new value field (int) to a table in plain SQL I can mark this field as NULL or NOT NULL, and independently of that I can set or not set a default value. However when using this EF provider whenever I add a new value field I get a default value for that field in the database which I didn´t explicitly specify. And remember that by EF specification you can only define a default value if using the fluent API, so you must not assume any conventions or data annotations for generating default values. Basically I want that when I add a new field independently if it is a nullable type or not that you don´t add a default value into the database which I didn´t explicitly specify, because this is the normal behavior I achieve when not using your provider or not using any provider at all, just using the database engine command line tools.
I would want to write this as part of the discussion of my original issue and expect to receive a convinced answer but instead you closed the issue with no further discussion. Sorry if I am missing something, I hope you help me to clarify this.

from @caleblloyd
If your field is defined as an int, then this library will automatically assign a default value of 0 to it.  That's because the CLR type int cannot be null. Model Deceleration, Empty Value Test Case
If your field is defined as int?, then this library will automatically assign a default value of null to it, since the CLR type int? is nullable. Model Deceleration, Empty Value Test Case
Can you post these 4 things:

Post your model
CREATE TABLE dump for the table that was created
explanation of the problem
expected result:

From @YandyZaldivar
In MySQL NULL is not a default value, it just specify if a field must have a value. Besides in MySQL default values are optional, so independently if I mark a field as NULL or NOT NULL I can chose to set or not set a default value. So the problem with your provider is that you are always assigning a default value when I set an int or any other value type which is not a reference or nullable (xxx?).
So, in my opinion:

If your field is defined as int?, then this library will automatically assign a default value of null to it, since the CLR type int? is nullable.

That is right, except maybe that a in MySQL language is not appropriate to refer to null as a default value.

If your field is defined as an int, then this library will automatically assign a default value of 0 to it. That's because the CLR type int cannot be null.

That is wrong. If my field is an int then this library should set the field in the database as NOT NULL but without a default value, unless I explicitly set a default value using the fluent API.

Can you post these 4 things: [...]

I think it is no needed to understand my concern. It happens with all value types distint than nullable or reference types.

From @caleblloyd
In MySQL, a NULL field with no default value implicitly has a default value of NULL
A NOT NULL int with no default value implicitly has a default value of 0
We just happen to explicitly set the default value to the implicit value. There's no difference in operation.

From @YandyZaldivar
@Kagamine

If your field is an int, c# will set 0 as its default value. We cannot detect the diffs between public int SomeField{get;set;} and public int SomeField{get;set; }=0

You must not insert value! If you read EF documentation you will find it clearly says:

Conventions
By convention, a default value is not con?gured.
Data Annotations
You can not set a default value using Data Annotations.
Fluent API
You can use the Fluent API to specify the default value for a property.

So, if I want to set a default value of 0 for an int the only way is using the fluent API:
modelBuilder.Entity<MyEntity>().Property(p => p.MyProperty).HasDefaultValue(0);
Supose I want to create a table in MySQL with the following definition, as you can verify this is a correct MySQL SQL script definition:
CREATE TABLE Pomelo (
Id int(10) unsigned NOT NULL AUTO_INCREMENT,
Pomelo int(11) NOT NULL,
PRIMARY KEY (Id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
The Pomelo property is a value type (NOT NULL) and doesn't have a default value.
However if the Pomelo field is added to the existent table using your provider instead of:
Pomelo` int(11) NOT NULL` which is what I expect to achieve, I am ending with: Pomelo int(11) NOT NULL DEFAULT '0' which is incorrect because I haven't set any default value.
In other words, this definition:
``Pomelo int(11) NOT NULL
is equivalent to:
public int Pomelo { get; set; }
And this definition:
``Pomelo int(11) NOT NULL DEFAULT '0'
is equivalent to
public int Pomelo { get; set; }
plus
modelBuilder.Entity<MyEntity>().Property(p => p.Pomelo).HasDefaultValue(0);
@caleblloyd

In MySQL, a NULL field with no default value implicitly has a default value of NULL

That is correct.

A NOT NULL int with no default value implicitly has a default value of 0

That is wrong. In MySQL a NOT NULL int with no default value has not a default value. For an int value to have a default value of 0 you need to explicitly write the DEFAULT clause as in
``Pomelo int(11) NOT NULL DEFAULT '0'
and to achieve this in Entity Framework the only way is to use the fluent API as in
modelBuilder.Entity<MyEntity>().Property(p => p.Pomelo).HasDefaultValue(0);
If you don't use the fluent API to set a default value it doesn't matter how you define your properties, you should always get
``Pomelo int(11) NOT NULL
whitout the DEFAULT clause.
Note: In MySQL when not using strict mode there is the concept of implicit default values, but this is not related to the point we are discussing. What we are discussing is what is the valid C# code that will produce a default clause in MySQL.
For more information please also read the MySQL manual, mainly the section
12.7 Data Type Default Values

If a column definition includes no explicit DEFAULT value, MySQL determines the default value as follows:
If the column can take NULL as a value, the column is defined with an explicit DEFAULT NULL clause.
If the column cannot take NULL as the value, MySQL defines the column with no explicit DEFAULT clause.

From @caleblloyd

A NOT NULL int with no default value implicitly has a default value of 0

That is wrong.

It is correct.  See the following:
mysql> DROP TABLE IF EXISTS `test`;
Query OK, 0 rows affected (0.01 sec)

mysql> CREATE TABLE `test` (
    ->   `id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    ->   `name` text COLLATE utf8_unicode_ci NOT NULL,
    ->   `num` int(11) NOT NULL
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Query OK, 0 rows affected (0.03 sec)

mysql> INSERT INTO `test` (`name`) VALUES
    -> ('hi'),
    -> ('whats'),
    -> ('up');
Query OK, 3 rows affected, 1 warning (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 1

mysql> SELECT * FROM `test`;
+----+-------+-----+
| id | name  | num |
+----+-------+-----+
|  1 | hi    |   0 |
|  2 | whats |   0 |
|  3 | up    |   0 |
+----+-------+-----+
3 rows in set (0.00 sec)

You're correct in that MySQL does not explicitly say that the default value of the field is 0.  But it's default value is implicitly 0.  That's how the 0's got into the num column.  MySQL set them to the implicit default of 0.
This behavior also makes sense, because the default value of the CLR type int is 0.
Is this causing a bug in code for you?

From @YandyZaldivar
What version of MySQL server are you using? Mine is in the original post #39.

As of MySQL 5.7.5, the default SQL mode includes STRICT_TRANS_TABLES.
When this manual refers to “strict mode,” it means a mode with either or both STRICT_TRANS_TABLES or STRICT_ALL_TABLES enabled.

CREATE TABLE `test` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` text NOT NULL,
  `num` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

-------------------------------------------------------

insert into `test` (`name`) values ('hi'), ('whats'), ('up')

-------------------------------------------------------

1 queries executed, 0 success, 1 errors, 0 warnings

Query: INSERT INTO `test` (`name`) VALUES ('hi'), ('whats'), ('up')

Error Code: 1364
Field 'num' doesn't have a default value

Execution Time : 0 sec
Transfer Time  : 0 sec
Total Time     : 0.038 sec

-------------------------------------------------------

Here is the whole configuration I am using in my database server:

[mysqld]

ssl = false
port = 12484
log-syslog = false
bind-address = "::1"
pid-file = process.pid
secure-file-priv = null
log-error = process.log
log-error-verbosity = 3
lower-case-table-names = 2
character-set-server = utf8
max-allowed-packet = 4194304
explicit_defaults_for_timestamp
innodb-buffer-pool-size = 536870912
collation-server = utf8_general_ci

Is this causing a bug in code for you?

It is causing the following inconsistence, consider this C# entity:
    public class Charge
    {
        public int Id { get; set; }
        public int Num { get; set; }
    }

When this is first run to create the table it generates the following script:
CREATE TABLE `test` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `num` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

Then when I add more fields to my C# entity and I apply subsequent migrations:
    public class Charge
    {
        public int Id { get; set; }
        public int Num { get; set; }
        public int Num1 { get; set; }
    }

CREATE TABLE `test` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `num` int(11) NOT NULL,
  `num1` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

As you can see my final scripts are populated differently by your provider with some value types having the DEFAULT clause and others don't. This behavior is better explained in my original post #39. Through this discussion I have tried to explain you what is the correct behavior to follow, but I will be happy if you just make my code consistent.

@rowanmiller I've tried other providers, they occurred same issue. So I think it is not a Pomelo issue, it caused by upstream EF Core.

What would happen in MySQL if the table already contains data (i.e. existing rows) and you add a new non-nullable column with no default value? With other databases that would fail. That is the reason for this behavior.

@divega In MySQL if the table already contains data, and add a new non-nullable column without default value, like int, it will be 0 auto. But in my opinion I don't want to fix this.
Keep the result which generated by migration differ equal is better for migrate MySQL to other providers.

BTW, this is about the default migration that gets scaffolded. As a user you are free to change it if you want something else.

I haven't tested other providers. It would be interesting to see the opinion of someone in the EF team. In the EF documentation it says that by convention, a default value is not configured. In the end I want to be able to migrate from one database engine to other in a reliable manner, so I can accept a behavior that is consistent among the main providers.


How to tell imageMapResize inside a js-function to run again NOW?

Hi!
If the size of the image and map are modified, because I set the css-display of another  on the page from "none" to "block" or vice-versa, using a button on the page, then it seams that imageMapResize does not notice this and does not resize the map.
How can I tell imageMapResize at the end of my button-js-function to run a resize NOW?
Thanks!
deti

I think I got it. I used
document.getElementById("myMapId")._resize();

It might be a good idea to add this information into the README file   :-)
I hat to modify another part of your script because resizing with ._resize() immediately after my div-style-display-none/block statement sometimes leads to false map sizes. It seams that the image resizing of the browser, following the js-statement, sometimes is slower then the js resizing done by ._resize().
I added map._debounce() like this:
    function setup(){
        [...]
        map._resize           = resizeMap; //Bind resize method to HTML map element
        map._debounce         = debounce;
    }

... and it is working fine now  ;-)
Thanks for your wonderful script!


Make Organization registry config section a list

I should be able to instantiate one Dockerhub adapter with multiple organizations. Then the bootstrap will simply read all APBs from the orgs specified in that config.
It seems pointless I have to specify two registry adapters if all the other values are the same.

That would be HUGE :tada:

Closing stale issues


added bq mk command

Added bq mk command to avoid dataset Already Exists errors.
Since this pipeline has multiple bq ops and they try to create dataset if not exists, it raises the error at the first run.
(Only one BQ op is successful and the others fail.)
Error

Log

tldr: looks good, please feel free to merge!
I do remember this issue and you solved it, thank you.
Nit/thoughts:

Do you want to then also take out the note paragraph in both files starting with NOTE that your pipeline run may fail... as that's now resolved?
Maybe we could use --force as in bq mk --force $dataset to not throw an error if the dataset already exists. But this is not strictly necessary as in the current setup the execution continues to kfp anyway
(I was also thinking if this could be instead part of the pipeline a first step, as predecessor of all three bq/query components. But as there's no prebuilt component to manage datasets, your solution is cleaner)
Do you also want to add the same to the _vertex versions of both? You don't have to, and you could also merge this first and do it after.

Thanks again, I'll merge this now then!

Thanks @danielsparing for the comments!
That totally made sense so modified a little.
Regarding the vertex version, it looks it doesn't contain BQ operation in the pipeline and I skipped at this point.

Ah of course you're right, the Vertex one doesn't have this issue, my bad.


Waymo urban dataset

Hi, might this implementation work on the waymo urban dataset?
thanks!

I'm not sure.
Reconstruction urban scene such as Waymo dataset always need miliions of 3D Gaussians, computing the deformation of all the 3D Gaussians by Gaussian Deformation Network is expensive, but using motion mask to split dynamic and static part may work.
And I think Street Gaussians and pvg may have better performance.

I'm not sure. Reconstruction urban scene such as Waymo dataset always need miliions of 3D Gaussians, computing the deformation of all the 3D Gaussians by Gaussian Deformation Network is expensive, but using motion mask to split dynamic and static part may work. And I think Street Gaussians and pvg may have better performance.

I encountered the same problem. In urban scenes, especially the ground with less texture, the effect is very poor. Do you have any good suggestions? Will 4dgs be less effective at reconstructing large scenes than scenes with boundaries?My colleague has tried street gaussian, but the effect is not ideal in weakly textured scenes.

look at this?
@antithing
@huster-wugj btw, wugj is for my name guanjunwu? :)

look at this? @antithing @huster-wugj btw, wugj is for my name guanjunwu? :)

ha, it my name. im a huster, too.


rm:linux: Add how to build with the clang toolchain

Signed-off-by: Jose Quaresma<EMAIL_ADDRESS>Readiness

[x] Merge (pending reviews)
[ ] Merge after date or event
[ ] Draft

Overview
This merge add some notes on who to use the clang toolchain.
Checklist
Optional. Add a 'x' to steps taken.
You can fill this out after opening the PR. "Did I..."

[ ] Run spelling and grammar check, preferably with linter.
[ ] Avoid changing any header associated with a link/reference.
[ ] Step through instructions (or ask someone to do so).
[ ] Review for wordiness
[ ] Match tone and style of page/section.
[x] Run make linkcheck.
[x] View HTML in a browser to check rendering.
[ ] Use semantic newlines.
[ ] follow best practices for commits.

[ ] Descriptive title written in the imperative.
[ ] Include brief overview of QA steps taken.
[ ] Mention any related issues numbers.
[x] End message with sign off/DCO line (-s, --signoff).
[ ] Sign commit with your gpg key (-S, --gpg-sign).
[ ] Squash commits if needed.

[x] Request PR review by a technical writer and at least one peer.

Comments
Any thing else that a maintainer/reviewer should know.
This could include potential issues, rational for approach, etc.

Docs for 81d6d1a8feae5216c8100745dda21cc395e57d8c are browsable at: https://ci.foundries.io/projects/fio-docs/builds/1864/docs/artifacts/html/index.html

@angolini add all your suggestions, thanks for the review.

Jose, good work getting this written up.
Copying Katrina on this as it needs a pass through for spelling and grammar.
George

On Dec 13, 2022, at 12:04 PM, Jose Quaresma @.***> wrote:
@angolini https://github.com/angolini add all your suggestions, thanks for the review.
—
Reply to this email directly, view it on GitHub https://github.com/foundriesio/docs/pull/462#issuecomment-1348383035, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAADDO64TF3BIKJP4DZ4VIDWNBQ4RANCNFSM6AAAAAASZSXUEY.
You are receiving this because you are subscribed to this thread.

Thnaks @gcgrey. Have pinged the Katrina

I addressees all of your comment.
Thank you


Add support for v2 API GetAttachmentById

Checklist

[x] mage test passes
[x] unit tests are included and tested
[ ] documentation is added or changed (Please advise if documentation is preferred?)

Hi team, I this might be a useful PR for folks.  I haven't seen any dialogue with regard to v2 APIs on the project, so will await feedback on how to address the v1 / v2 transition. Thanks!

hi @coggsflod, thank you for your pull request. Your PR is the first one for v2 api requests.
can you use v1 and v2 mixed together? Otherwise having a v2 version would make sense but this needs at least the commonly used functions to be implemented.
A good way would be to create a V2 branch and reimplement all existing endpoints to use v2, so we can merge it once the basic feature set is done and tag a v2 version.
This way we can prevent mixing up implementations and have a consistent transition to v2 api.
What do you think about this approach and would you like to invest a bit time into a v2 transition?
The current supported feature set is:

CRUD content
CRUD content templates
CRUD labels
Read comments, attachments, children of content objects, history, watchers and user information
Search via CQL

Hi @c-seeger, you can absolutely mix v1 & v2 calls together as this is how I have implemented it in my project.  I also believe that v2 isn't a complete replacement for v1 yet, so most folks requiring access to v2 would most likely require v1 also.
I wanted your feedback based on this info, before suggesting next steps?
Thanks!

I have two questions:
Currently there are v1 attachment endpoints implemented e.g:
https://github.com/Virtomize/confluence-go-api/blob/5eab0c450474651e106f40da0af1e833deec9318/content.go#L248
as well as:
https://github.com/Virtomize/confluence-go-api/blob/5eab0c450474651e106f40da0af1e833deec9318/content.go#L373
https://github.com/Virtomize/confluence-go-api/blob/5eab0c450474651e106f40da0af1e833deec9318/content.go#L382
GetAttachmentById replaces the first one, do you know if the other two can also be replaced by v2 api?
And the second one is about naming conventions:
Regarding the naming, we currently have the GetAttachments and GetAttachmentById which can be a bit confusing since its not clear that the first one relies on v1 API and second one on v2. I was thinking of replacing the GetAttachments function by your new implementation and move the old one to GetAttachments. But this would break the current API which would cause a major release change.
We could also add a version in between the calls:
e.g.
api, err := goconfluence.NewAPI("https://<your-domain>.atlassian.net/wiki/rest/api", "<username>", "<api-token>")
//... error handling

// instead of
attachments, err := api.GetAttachments("<id>")

// v2 would be
attachment, err := api.v2.GetAttachments("<id>")

This would allow us to have full fallback compatibility and make it clear that the users uses v2 to GetAttachments.
It also allows us to simply release a full v2 version once everything is implemented by just removing the v2 part to make it default.
I was thinking of sth. like
type API struct {
  endPoint        *url.URL
  Client          *http.Client
  username, token string
  v2 *v2
}

type v2 struct {
  // not sure if we need additional information here or leave it just empty
}

func (a *v2) GetAttachmentById(id string) (*Attachment, error)

Whats your opinion on that. Does this make sense?

I would also recommend to make a folder for v2 and put the implementation for v2 there

also put some documentation in the repository wiki, always happy about a short review and some feedback.


Instalation error

$ python setup.py build
nad2bin.c
nad2bin.c(129) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
nad2bin.c(130) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
nad2bin.c(137) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
nad2bin.c(138) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
nad2bin.c(352) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
nad2bin.c(353) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
pj_malloc.c
using bundled proj4..
Traceback (most recent call last):
File "setup.py", line 84, in
cc.link_executable(objects, execname, extra_postargs = [ '/MANIFEST' ] if os.name == 'nt' else  None)
File "C:\Python27\lib\distutils\ccompiler.py", line 700, in link_executable
debug, extra_preargs, extra_postargs, None, target_lang)
File "C:\Python27\lib\distutils\msvc9compiler.py", line 669, in link
raise LinkError(msg)
distutils.errors.LinkError: command 'C:\Users\shane\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\WinSDK\Bin\x64\mt.exe' failed with exit status 31
Phyton 2.7
Visual C 2.7

I do not think I have enough information to help you.
I assume based your issue that "Visual C 2.7" means that you have installed Microsoft Visual C++ Compiler for Python 2.7.
You might try installing pyproj using pip,  C:\...> pip install pyproj
Out of curiosity, what version of setuptools are you running? C:\...> pip list | find "setuptools", which you could try upgrading.

Yes, i meant Microsoft Visual C++ Compiler for Python 2.7.
If you need any more kind of information, I will be happy to prove it.
Trying to install pyproj using pip gives the exact same error unfortunately :(
I am running setuptools 25.1.6,
But trying to check the version of setuptools using C:...> pip list | find "setuptools" gives the following result:
$  pip list | find "setuptools"
find: ‘setuptools’: No such file or directory
Traceback (most recent call last):
File "c:\python27\lib\logging_init_.py", line 882, in emit
stream.write(fs % msg)
File "c:\python27\lib\site-packages\pip_vendor\colorama\ansitowin32.py", line 141, in write
self.write_and_convert(text)
File "c:\python27\lib\site-packages\pip_vendor\colorama\ansitowin32.py", line 169, in write_and_convert
self.write_plain_text(text, cursor, len(text))
File "c:\python27\lib\site-packages\pip_vendor\colorama\ansitowin32.py", line 175, in write_plain_text
self.wrapped.flush()
IOError: [Errno 22] Invalid argument
Logged from file list.py, line 202

Another shot in the dark.  What version of pip are you running?  C:\...> pip --version

Wow, interesting ...
This is what is showed yesterday:
$ python --version
Python 2.7.12
$ pip --version
pip 8.1.2 from /usr/local/lib/python2.7/site-packages (python 2.7)
This is what it shows today
$ pip --version
Access is denied.
as well as a pop-up saying "this app cant run on your PC"
strange ..

I had this exact same problem.  Did you ever find an answer?
$ pip install -U pyproj
Collecting pyproj
  Using cached pyproj-<IP_ADDRESS>.tar.gz
    Complete output from command python setup.py egg_info:
    nad2bin.c
    nad2bin.c(129) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    nad2bin.c(130) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    nad2bin.c(137) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    nad2bin.c(138) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    nad2bin.c(352) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    nad2bin.c(353) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data
    pj_malloc.c
    using bundled proj4..
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "c:\users\brett\appdata\local\temp\pip-build-xysdqt\pyproj\setup.py", line 74, in <module>
        cc.link_executable(objects, execname, extra_postargs = [ '/MANIFEST' ] if os.name == 'nt' else  None)
      File "c:\python27\lib\distutils\ccompiler.py", line 700, in link_executable
        debug, extra_preargs, extra_postargs, None, target_lang)
      File "c:\python27\lib\distutils\msvc9compiler.py", line 669, in link
        raise LinkError(msg)
    distutils.errors.LinkError: command 'C:\\Users\\brett\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\WinSDK\\Bin\\mt.exe' failed with exit status -1073741819

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in c:\users\brett\appdata\local\temp\pip-build-xysdqt\pyproj\

I have the same versions as mentioned above.

What shell are you using under Windows with a $ prompt?  Is it bash?

I was able to get it working.    The tutorial told me to remove the slash from the end of the Python PATH Environment variable.  Once I added it back on, everything was gravy.

Refer to #216


Don't limit get hash requests for fetching ATX deps

Motivation
The original limiting of ATX fetching didn't consider the recursiveness of fetching an ATX (fetching an ATX can trigger fetching its dependencies). The simultaneous fetching of many ATXs could stall, waiting for a slot to fetch dependencies, without a way to unblock and starve.
Changes
Don't limit ATX fetches when fetching dependencies of a processed ATX. Huge batch fetches of ATXs from processing an active set or epoch info are limited.
Test Plan
I ran against the mainnet and didn't observe fetch stalls.

bors cancel

bors merge