text:
Comparison to react-native-firebase

Does anyone know of a write-up or know offhand of notable differences between this package and this: https://github.com/invertase/react-native-firebase ?
I've been using react-native-firestack for some time now, but am bumping into some issues where .startAt() doesn't seem to work properly, and I wonder if react-native-firebase is more frequently maintained
Thanks!

for workaround #174 may help you

You should take a look at https://github.com/invertase/react-native-firebase/blob/master/docs/faqs.md#comparison-to-firestack.

@patrickdevivo @mike623 @mmmoussa hey all, one of the authors of RNFirebase here, the link @mmmoussa provided sums it up really, but to add to it:

It's a re-write from the ground up - it matches the firebase web SDK to the letter and it's well tested with a custom testing app. This repo has a ton of bugs / issues and the api is unruly in terms of no correlation between it and the official firebase web sdk.
It's well supported and documented, issues are answered daily and work is done on it daily. All 3 co-authors (myself included) are active on slack, gitter and discord answering questions daily -
whereas this repo has long since been abandoned by it's authors.
Minimal disparity between platforms, features are built and tested on both android and ios before getting released. For example we now have remote config, transactions, perf-mon, analytics, crash, full fcm implementation and more in addition to the current firestack feature set.
Authors actively working to provide the majority of the firebase feature set - for example we're working on admob for v2 release and have Banners and Interstitials working.

Have nothing against firestack - it's just in a really bad state and has been abandoned like that - you'll find the majority of the commits for v3 version of firestack was done by myself - so it's not like we didn't try =]

how to configure react-native-firebase
?

authors: BilalPasta Salakar mike623 mmmoussa patrickdevivo

repo: fullstackreact/react-native-firestack


text:
ClojureScript self-host port and build tweaks

Three main changes, let me know if you would rather have three PRs (not squashing the commits would probably achieve the same result :D) :

Stop bundling xregexp

This change makes cuerdas compatible with the latest ClojureScript release: npm dependencies does not need to be bundled and they can be declared by adding a key in deps.cljs - the compiler will see the dep is declared and will try to install in dependent libraries.

Make code self-host compatible

Note that this patch does not port cuerdas.core/istr and cuerdas.core/<<.

Add deps.edn and figwheel-main configuration

The failure is due to cuerdas.core/capital and fixed in #67

Another note, the problem with << and istr lies in silent-read - I need more understanding of the return:
[(read r) (slurp r)]

in particular where the reader stops after read...so that slurp can continue.

source: gharchive/pull-request

repo: funcool/cuerdas

license_type: permissive

license_source: bigquery


text:
Polars >=1.0 fixes.

Reference Issues/PRs

Fixes #255, #253, #250
Makes #251 irrelevant.
Should fix #159
What does this implement/fix? Explain your changes.
This PR fixes all issues with Polars >= 1.0 caught by existing tests.
Has been tested with Polars 1.8.2.
Any other comments?
All issues found were listed in polars' upgrade guide https://docs.pola.rs/releases/upgrade/1/, so versions of polars between 1.0 and 1.8.2 should be fine.

I just saw #245. This one also fixes it, but ensures that all other tests also pass.

repo: functime-org/functime

license_source: github-api


text:
27 concurrent connections v2

Code for starting a new virtual thread for each connection
resolve #27

Code looks good, what do you think of moving the connection functionality to another class for more OOP and readability?

Code looks good, what do you think of moving the connection functionality to another class for more OOP and readability?

I think its a good idea, we could wait for merging day and create a separate issue for that? i think most of the clutter will disapear when the commands are sorted and the printlines are removed

Smart! I agree, there's probably going to be an influx of java code soon, let's get that to work first and refactor after

Java code looks good but when looking at the pom.xml file it looks like every line almost has been replaced. Must be indentation that has changed from space to tab or something like that so git diff marks every line as replaced?

authors: MikaelEdwartz kappsegla safstromo

repo: fungover/haze

license: MIT


text:
qbert v3.12.1 update

BERT 최신 release 인 v3.12.1 로 업데이트 PR 입니다.
v3.12.1 변경 사항 반영:qformat, qparam 을 입력해서 model_compressor.create_quantsim_model() 을 사용하는 경우  disable_inout 을 포함해서 무시되는 argument 들이 입력되는 경우 warning 이 되도록 변경되었습니다. 이에 따라 evaluation 시에는 target_machine 과 qlevel 만 입력되게 변경하고 quant_config 를 불필요하게 입력받지 않도록 변경했습니다.
v3.12.1 accuracy 는 v3.11 과 동일한 값이 나오는 것을 아래와 같이 확인했습니다.

Evaluating predictions...
{"exact_match": 83.84105960264901, "f1": 91.05631631816962}

혹시 qformat qparam 도 v3.12.1 release 시 전달한거를 사용하셨나요?

v3.12.1 로 calibration 했을 때 v3.11 과 동일하게 나왔어서 v3.11-> v3.12 -> v3.12.1 사이에 qformat, qparam 업데이트는 없었습니다.

다행이네요.

@deeplearningfromscratch qformat qparam 도 v3.12.1 에 맞춰 version up 되어야 할텐데, https://github.com/furiosa-ai/furiosa-llm-models-artifacts 여기랑 dvc 연동되게 하는게 어떨까요?

@deeplearningfromscratch qformat qparam 도 v3.12.1 에 맞춰 version up 되어야 할텐데, https://github.com/furiosa-ai/furiosa-llm-models-artifacts 여기랑 dvc 연동되게 하는게 어떨까요?

네, 좋은 것 같습니다.

README 에 qbert version v3.12.1 로 업데이트
logs/internal/qbert.dvc 업데이트
@deeplearningfromscratch 위의 두 가지 사항 반영했습니다.

repo: furiosa-ai/inference


text:
Game freeze on skit

Game freeze when opening this skit

Thank you Lightplol ^^

Fixed by leaving some lines in Japanese. Will be in next patch.

Fixed in patch v0.0.144.

source: gharchive/issue

license: Unlicense


text:
Product Validation

As a developer
I need to verify the product information
So that the product information is valid and will not cause error to the database
Details and Assumptions

Product details(ID, Name, Price, Description, Picture)

Acceptance Criteria
Given a product information
When a new product is created or edited and before the information is written into the database
Then check if it has a unique ID, a valid name, a valid price, a valid description, and a valid picture.

The details and assumptions section could be more specific like what's the invalid input format.

authors: DiaoDeBuDeLiao ElioZhou

repo: furongkingdevops/products


text:
not working on updated tweetdeck

not working on new updated tweetdeck. they removed "data-tweet-id" from the tweet.

For me it worked fine since today. From today it stopped working. Probably because of the new and terrible view restrictions per day of Twitter to prevent scraping that probably implemented some new code that breaks the addon.

repo: furyutei/twMediaDownloader

license: mit


text:
pip in the container?

I know it's not essential but it would be useful to have pip in the fusion-neutronics-workflow container :-)

My bad, pip is in the container.... silly me. For some reason VS code cannot instal black! closing this


text:
Incompatible with the popular Android devices

The app is incompatible with the popular Android devices currently in use such as Galaxy Grand Prime, J2, J1 Ace, and Oppo A37f. The devices support min SDK 22. However, the app supports min SDK 23. Therefore, the app is not available in the Play store on the aforementioned devices.

Yeah, the support was dropped on purpose:
https://github.com/fuwa0529/wownerujo/blob/b447fa5a24c4021615de01d25a2595aa74c92934/app/build.gradle#L9

I'm closing this now, thx for the report.


text:
Change operator class hash_timestamp9_ops to default

postgres=# create table tbl(ts timestamp9);
CREATE TABLE
postgres=# create index on tbl using hash (ts);
ERROR:  data type timestamp9 has no default operator class for access method "hash"
HINT:  You must specify an operator class for the index or define a default operator class for the data type.

postgres=# CREATE TABLE tbl1(ts timestamp9) PARTITION BY HASH (ts);
ERROR:  data type timestamp9 has no default operator class for access method "hash"
HINT:  You must specify a hash operator class or define a default hash operator class for the data type.

The DEFAULT option is needed when creating a hash index. This also solves the problem when timestamp9 is used as the partition key.
The hash operator class is resolved in this function in PG.
https://github.com/postgres/postgres/blob/ff9618e82a466fc9c635f9f087776e57b21e4f14/src/backend/commands/indexcmds.c#L2148

Thanks for your contribution! Could you also add a file timestamp9--1.1.0--1.2.0.sql with the command to make the change in case of an upgrade from 1.1.0 to 1.2.0 and test this? (can be manual test)

Looks good to me. Thanks!

authors: fvannee liuxueyang


text:
Multi-build projects not supported?

That's just a guess in the title, but when I open a file in my Gradle-based Kotlin project, I just get a sea of red squiggles with unresolved imports, basically.
If I recall correctly when trying to get the previous iteration of this working, I remember hearing multi-build projects (if I'm using that term correctly) were not supported.
If that's the problem, it should be documented prominently in the README. I'd write it and submit a PR but 1. I'm not sure that I'm correct, and 2. I'm not a Gradle expert and would want to get my terminology right.

The language server should support them, the debug adapter does not (yet). Could you post the log from the Kotlin section in the output tab?

I have also this problem. My project is Idea-based, but I took Gradle from a sample Kotlin project. A new version of this extensions showed more than 150 errors and one external error. I have Java 8 and 13 installed, but I used Gradle to set Java 8.

Here is the code in the file KotlinEssencialAndroid.iml:
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id="KotlinEssencialAndroid" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="0.1.1" type="JAVA_MODULE" version="4">
  <component name="NewModuleRootManager" inherit-compiler-output="true">
    <exclude-output />
    <content url="file://$MODULE_DIR$">
      <excludeFolder url="file://$MODULE_DIR$/.gradle" />
      <excludeFolder url="file://$MODULE_DIR$/build" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
  </component>
</module>

@gusbemacbe Could you please share the Kotlin log in the output section:

@fwcd
Here is the log:
[Info  - 12:29:35] main      Connected to client
[Info  - 12:29:35] client    Adding workspace file:///home/gusbemacbe/IdeaProjects/KotlinEssencialAndroid to source path
[Info  - 12:29:35] client    Adding .../src/modulo1-aula8.kt, .../src/modulo1-aula9.kt, .../src/OlaMundo.kt under /home/gusbemacbe/IdeaProjects/KotlinEssencialAndroid to source path
[Info  - 12:29:35] client    Searching for dependencies in workspace root /home/gusbemacbe/IdeaProjects/KotlinEssencialAndroid
[Info  - 12:29:35] client    Resolving classpath using Stdlib + [] or [] + Gradle or Backup
[Info  - 12:29:35] client    Resolving dependencies for 'KotlinEssencialAndroid' through Gradle's CLI...
[Info  - 12:29:35] client    Creating temporary gradle file /tmp/classpath7107834936088201821.gradle
[Info  - 12:29:36] client    Successfully resolved dependencies using Gradle dependencies CLI
[Warn  - 12:29:36] client    Could not resolve Gradle dependencies using any resolution strategy!
[Info  - 12:29:36] client    Could not resolve kotlin-stdlib using Maven: null
[Info  - 12:29:36] client    Successfully resolved kotlin-stdlib using Gradle
[Info  - 12:29:36] client    Adding [/home/gusbemacbe/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.40/7af6fd6b9293e80fc7408493a764858a7f66b022/kotlin-stdlib-1.3.40-sources.jar] to class path
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.jetbrains.kotlin.com.intellij.openapi.util.io.FileSystemUtil$FallbackMediatorImpl (file:/home/gusbemacbe/.config/Code%20-%20Insiders/User/globalStorage/fwcd.kotlin/langServerInstall/server/lib/kotlin-compiler-embeddable-1.3.41.jar) to field java.io.File.fs
WARNING: Please consider reporting this to the maintainers of org.jetbrains.kotlin.com.intellij.openapi.util.io.FileSystemUtil$FallbackMediatorImpl
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[Info  - 12:29:36] client    Updated configuration: {"kotlin":{"languageServer":{"enabled":true,"path":""},"compiler":{"jvm":{"target":"default"}},"linting":{"debounceTime":250},"completion":{"snippets":{"enabled":true}},"debugAdapter":{"enabled":true,"path":""},"debounceTime":250,"snippetsEnabled":true}}
[Info  - 12:29:36] debounce0 Linting .../src/modulo1-aula9.kt
[Info  - 12:29:36] async0    Find symbols in TextDocumentIdentifier [
  uri = "file:///home/gusbemacbe/IdeaProjects/KotlinEssencialAndroid/src/modulo1-aula9.kt"
]
[Info  - 12:29:37] async0    Finished in 154 ms
[Info  - 12:29:38] debounce0 Reported 158 diagnostics in modulo1-aula9.kt

@gusbemacbe This is possibly https://github.com/fwcd/kotlin-language-server/issues/116.

IDK that's the same type of issue but...
I wanted to try write plugins to Minecraft in VSC, but that extension is showing weird/wrong hints

When I wrote the code, extension see all things good. Questions is: why it doesn't see functions/methodswhen I'm writing?

This seems like extension can't load external libraries/classes.
I'm using that with Java set of extensions (it follows that with Maven)
 My pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>io.cactu.mc.chat</groupId>
  <artifactId>cactu-chat</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>io.cactu.mc.chat cactu-chat</name>

  <repositories>
    <repository>
      <id>spigot-repo</id>
      <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
    </repository>
  </repositories>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <kotlin.version>1.3.41</kotlin.version>
    <kotlin.code.style>official</kotlin.code.style>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.spigotmc</groupId>
      <artifactId>spigot-api</artifactId>
      <version>1.14.4-R0.1-SNAPSHOT</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jetbrains.kotlin</groupId>
      <artifactId>kotlin-stdlib</artifactId>
      <version>${kotlin.version}</version>
    </dependency>
  </dependencies>

  <build>
    <sourceDirectory>src/main/kotlin</sourceDirectory>

    <resources>
      <resource>
        <directory>${project.basedir}/src/main/resources</directory>
        <includes>
          <include>plugin.yml</include>
        </includes>
      </resource>
    </resources>

    <plugins>
      <plugin>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-maven-plugin</artifactId>
        <version>${kotlin.version}</version>
        <executions>
          <execution>
            <id>compile</id>
            <phase>compile</phase>
            <goals> <goal>compile</goal> </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>2.4.3</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals> <goal>shade</goal> </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>

I have tested that code in Java, and it worked perfectly.
IMO Kotlin >>>>> Java, but when Java is working and Kotlin not...

@Evolveye The extension does not propose getXYZ()-style methods since there is a more idiomatic way of writing this in Kotlin: Instead of getServer().getPluginManager() you would write server.pluginManager. These properties are automatically converted getters (not fields!) and will show up in your code completions.

:O
My mindset has changed, thx very much

This issue is a bit confusing. What's the proposed opinion on this matter?
I have a big project with many different languages in it. The language used most is Kotlin, but this extension is freaking out when opening that project.
I'm having this issue for weeks, but was using IntelliJ in the meantime, because I didn't have the opportunity to deal with this issue.
Several days ago, all Gradle stuff in this project was updated, reworked, cleaned and brushed up elegantly. The extension still cries about unresolved references. So this extension clearly has trouble dealing with multi-build and/or big projects or whatever. The point is: it does not work as expected.
The Output shows, that it cannot execute the Gradle tasks. Remember, the whole Gradle situation was reworked recently and is being used every day, successfully, by several people. So the error is caused only by the extension.
An example of what is going wrong:
client    Resolving dependencies for 'master' through Gradle's CLI using tasks [kotlinLSPProjectDeps]...
client    Gradle task failed:
client    Resolving dependencies for 'backend' through Gradle's CLI using tasks [kotlinLSPProjectDeps]...
client    Gradle task failed:

authors: Evolveye davidpcaldwell fwcd gusbemacbe theAkito

repo: fwcd/vscode-kotlin


text:
feat: Add XValidations in the generated documentation

With Kubernetes 1.25, CEL will be added, as an alternative to enforcing validations, rather than webhooks. This allows, among other things, the ability to enforce immutability on fields.
Since this is documented in the CRD YAML itself, bubbling this up into the documentation allows one to see custom validation rules
An example kubebuilder comment in Go would be:
// +kubebuilder:validation:XValidation:rule="self == oldSelf", message="Value is immutable"

This would result in the following in the CRD:
x-kubernetes-validations:
- message: Value is immutable
  rule: self == oldSelf

And now the generated documentation will reflect this:
Validations:
self == oldSelf: Value is immutable

@fybrik Please let me know if this is acceptable

repo: fybrik/crdoc


text:
jQuery.MultiFile.min.js not up-to-date

jQuery.MultiFile.min.js was last changed in April 2016, jquery.MultiFile.js in June 2016…

I'm unable to maintain the project any more but have made you a collaborator. Hope that's OK.

The min file is compiled manually using https://closure-compiler.appspot.com/home - this project pre-dates  node, I think maybe even github itself, haha.

OK, thanks, will have a look at it.

Working on it. I got the docs to build, with some fixes, will need to work on minification (apparently uglifyjs via grunt via npm… sigh). But I’m letting you know I’m on it and will release an updated version soon™.

I fixed the build process, regenerated the file and released v2.2.2 (from whatever code was at the HEAD of the master branch) to fix this issue.

authors: fyneworks mirabilos

repo: fyneworks/multifile


text:
Add INN and KPP support for ru_RU locale

Add generation INN and KPP numbers for Russian locale.
INN and KPP are Tax identification information for all legal company in Russia

Thanks!

authors: fzaninotto pwsdotru

repo: fzaninotto/Faker


text:
Missing main Section in bower.json

The main section in bower.json is missing. As a result, grunt wiredep does not insert dist/index.css and dist/index.js to index.html.
Suggested addition to bower.json:
  "main": [
    "./dist/index.css",
    "dist/index.js"
  ],

Feel free to PR.

authors: edmondchui eralha


text:
Retrieve district from land records

Hello all,
I have a project which needs to return district for inputting address so I have tried to use this node module to complete the project.
However, returned records from node module sometimes miss district for inputting address. And I found that the reason missing district is returned record is land records from https://geodata.gov.hk/gs/api/[version]/locationSearch?q=[value].
So my question is there any method to return district each time when using node module.
Thanks

Hi @Jojo109, can you give us a few examples for the address?
We can have a look into that.

@cswbrian  Thanks for prompt reply.
I think it is quite difficult for me to give few examples as there are mass of data.
After quick scanning, here is one example below and node module returning land record without district. Thanks
大嶼山香港國際機場一號客運大樓第五層抵港大堂 5T058 舖


text:
Demo not working

The demo screen just displays "Loading.." when I opened the link

Thanks for letting me know! I'll look into this :)

There was an issue with the way angular version was resolved.
I've set specific version numbers in system js config file to fix the demo :)


text:
Add portuguese translation

Add portuguese translation

Thx for adding it. LGTM!

Thx for adding it. LGTM!

Thx for the awesome theme! Forgot to add dates, will open another PR.

Thx for the awesome theme! Forgot to add dates, will open another PR.


text:
Implement getVcfHeaderReferenceSetName

Assumes #1166 has been merged.
We should use the pysam VCF header parsing code to attempt a guess at the reference name for a particular Variant set. There are some headers in the VCF spec for this which we should try to use.

We do this https://github.com/ga4gh/ga4gh-server/blob/master/ga4gh/server/cli/repomanager.py#L295


text:
Updates G2P documentation

Added a banner
Removed mentions of the extra  paths
Removed mentions of genotypes/search
Removed the list of convenience endpoints
Added g2p to index toctree
Add g2p schemas to schema index toctree
Removed generated avro docs
The automated doc generation process requires that comments be placed directly above the field they are describing. Also improved styling. @bwalsh @dcolligan @sarahhunt

+1


text:
Sql repo

This PR changes master to use the sql repo, and removes support for file system based data repositories.
Issues closed by this PR:

#1149, #1030, #689, #751 Mandatory reference set link enforced by foreign key constraints.
#1127 Files no longer copied/moved
#1120   #955, Reference ingestion code replaced, now required a single FASTA and no JSON.
#1087  Object names are now all optional arguments, so that any bad guesses can be remedied by the administrator. However, there is certainly room for improvement in the guessing algorithm.
#1064 No external programs are now called.
#1052 No new files are created.
#1047 No longer directly relevant, but not all metadata values are currently settable via the CLI. See for example #1150.
#1059 No longer relevant, as check has been changed to verify and rewritten. However, dealing with inconsistent VCF files passed as part of a variant set is something we need to tackle.
#1049 No longer relevant. Reference import should be much improved now.
#1045 #970 Full support for URL backed ReadGroupSets and VariantSets.
#1038 No longer relevant.
#1019 No longer relevant. We should provide a HOWTO for importing references as part of our repository administration tutorial though.

This is a large change affecting all developers and users, so please review and vote.

-1
This is just a temporary hold: I'm wildly in favor of this PR going in as soon as possible (with many thanks and kudos to @jeromekelleher, @dcolligan, @david4096  and everybody else who helped this come to be so quickly). I'll lift it the moment the compliance-related issues for this milestone are resolved, which shouldn't take long.

@macieksmuga could you link the issues you are waiting to be resolved before you lift your block?  I agree we want to get this PR in to master as soon as possible.

Thanks @macieksmuga, totally agree with resolving compliance issues before merging to master.
I'm checking out for a few days; have fun!

@dcolligan I've been marking all the relevant issues with the sql data Repo milestone. I may find a couple of further ones by the end of the day.

Good stuff! Will we be turning the tests back on before merging? Left a dusting of comments and we can work with this before we move on.
From what I can tell, it's going to be difficult to capture the variety of annotated VCFs with internal server mechanics. It makes sense to me to move that effort to a better isolated bit of code.

#1189 removed my temporary hold: the code in this PR now passes compliance modulo two known exceptions in Reads.

Anything else that needs to be changed in this PR before the merge?

There's all of @david4096 's comments...
(There's also some PRs of mine but I can just re-make them against master once this is merged if they don't get in in time.  We shouldn't wait on that.)

Just a quick note, none of my comments are blocking. I have an open PR on the branch that we could merge first https://github.com/ga4gh/server/pull/1196 .

I think I've addressed all the actionable comments here, and hopefully we can track the remaining with some issues. I've opened a PR #1207 for these review fixes, which hopefully we can merge quickly.
Are we ready to vote?

I closed my other PR, I'm all for merging!

+1 for merging. I just re-ran the full compliance suite, and the only tests that fail are the expected ones on reads.

Great, thanks @macieksmuga and @david4096. I'll try and get an update to sort out the latest merge problems pushed soon, and hopefully we can merge into maste quickly after that.

+1 for merge

OK, once #1208 has been merged I think we're ready to click the big green button!

-1, blocking this until we fix the multi readgroup search problem pointed out in  #1208.

@jeromekelleher assuming PR #1212 passes muster, this should lift your -1

Great, thanks @macieksmuga. Let's see what @dcolligan thinks of #1212, and take it from there. Hopefully we can merge today.

OK,  #1212 has been merged so I think we're good to go. Retracting my previous -1.
@dcolligan, what do you think? Ready to push the button?

I am now pushing the button.

@jeromekelleher let the great issue-closing begin

Woohoo! Thanks @dcolligan, time for a closeathon!

authors: david4096 dcolligan jeromekelleher kozbo macieksmuga


text:
SqlAlchemy POC

This is a very early work in progress, and not intended for review. The PR is intended to show the direction that the SQLAlchemy refactor is going in, and hopefully get some early feedback from those that are interested.
The main idea is that we pull out our clunky object model for all of the objects in our registry, and use the SQLAlchemy library to do the heavy work for us.
What works

Rough outline model of Datasets, ReferenceSets and References.
Polymorphism within the DB for HtslibReferenceSets and SimulatedReferenceSets. We can store either in the DB, and we instantiate the correct object at run time when we need to access information for a specific information. This is the key requirement for more flexible storage backends.
Search and GET requests for references, referencesets and datasets. The paging algorithm has been reworked to use SQL natively, and is much cleaner.
Native support for multiple databases for the registry. I've tested this on Sqlite and Postgres and it works great on both.
Updated the repo manager CLI to use the new interface for the subset of data types supported. The repo manager now takes a DB URL in the form of a SQLAlchemy connection string.
Online updates to the DB. Updates to the registry from the CLI are now reflected in the server without needing a server restart.

TODO

A fair bit of refactoring and shuffling around of code.
Complete the rest of the data model (ReadGroupSets, VariantSets, etc).
Fix test cases.
Add some way of testing the postgres support using Travis.

Questions

Do we really need to worry about ID collisions between tables? I.e., does it actually matter if we have a  Dataset and a VariantSet with the same ID? I don't think we need uniqueness to fulfill the requirements of the server, and it adds a fair bit of complexity ensuring that they are unique.
How should we model things like ReferenceSet.source_accesssions? At the moment we embed some JSON into the table and don't worry about it. However, the right thing to do here would seem to be to model it with a table. It would surely be more forward-compatible to do this, if we ever need to get clever about accession numbers.
More generally, do we go for a full-on SQL model of all objects (like Experiment, VariantSetMetadata, etc), or do we continue using embedded JSON stored in a table?

Reactions:

If we are going to store data as well have registry database,
would a document store make more sense?  Then again, postgress
has a document store facility:
- https://blog.andyet.com/2016/02/04/postgres-9.5-document-store-hybrid/

If we are storing GA4GH record in blobs, it would be good to
research storing the binary protobuf.  This would reduce the
size and might be faster to decode into memory.

We need to have a design that handles being a REST front-end
to the UCSC Browser database.  The UCSC Browser database will
not map well to SqlAlchemy, as it mostly highly denormalized
and doesn't use foreign keys.  It's closer to htslib in SQL
than a true relational database.  It's doubtful that we can
afford to do an ETL of the subset of the data that can be
represented in GA4GH.   SqlAlchemy can't be the abstraction
layer if we are going to support this.

We need to know the goals before we decided on the
implementation.
Jerome Kelleher notifications@github.com writes:

This is a very early work in progress, and not intended for review. The PR is
intended to show the direction that the SQLAlchemy refactor is going in, and
hopefully get some early feedback from those that are interested.
The main idea is that we pull out our clunky object model for all of the
objects in our registry, and use the SQLAlchemy library to do the heavy work
for us.
What works
• Rough outline model of Datasets, ReferenceSets and References.
• Polymorphism within the DB for HtslibReferenceSets and
SimulatedReferenceSets. We can store either in the DB, and we instantiate
the correct object at run time when we need to access information for a
specific information. This is the key requirement for more flexible storage
backends.
• Search and GET requests for references, referencesets and datasets. The
paging algorithm has been reworked to use SQL natively, and is much
cleaner.
• Native support for multiple databases for the registry. I've tested this on
Sqlite and Postgres and it works great on both.
• Updated the repo manager CLI to use the new interface for the subset of
data types supported. The repo manager now takes a DB URL in the form of a
SQLAlchemy connection string.
• Online updates to the DB. Updates to the registry from the CLI are now
reflected in the server without needing a server restart.
TODO
• A fair bit of refactoring and shuffling around of code.
• Complete the rest of the data model (ReadGroupSets, VariantSets, etc).
• Fix test cases.
• Add some way of testing the postgres support using Travis.
Questions
• Do we really need to worry about ID collisions between tables? I.e., does
it actually matter if we have a Dataset and a VariantSet with the same ID?
I don't think we need uniqueness to fulfill the requirements of the server,
and it adds a fair bit of complexity ensuring that they are unique.
• How should we model things like ReferenceSet.source_accesssions? At the
moment we embed some JSON into the table and don't worry about it. However,
the right thing to do here would seem to be to model it with a table. It
would surely be more forward-compatible to do this, if we ever need to get
clever about accession numbers.
• More generally, do we go for a full-on SQL model of all objects (like
Experiment, VariantSetMetadata, etc), or do we continue using embedded JSON
stored in a table?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
You can view, comment on, or merge this pull request online at:
https://github.com/ga4gh/server/pull/1259
Commit Summary
• Simple initial modelling work.
• Simple initial modelling work.
• Basic implementaion of references.
• Rough working queries for references API.
• Verified works on postgres.
• Modified ID generation.
• Added constraints and checks.
• Merge branch 'sql-alchemy-poc' of github.com:jeromekelleher/server into
sql-alchemy-poc
File Changes
• M ga4gh/backend.py (123)
• M ga4gh/cli.py (141)
• M ga4gh/datamodel/init.py (12)
• M ga4gh/datamodel/datasets.py (25)
• M ga4gh/datamodel/references.py (209)
• M ga4gh/datarepo.py (163)
• M ga4gh/frontend.py (40)
• A sqlalchemy-demo.py (25)
Patch Links:
• https://github.com/ga4gh/server/pull/1259.patch
• https://github.com/ga4gh/server/pull/1259.diff
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.*

One thing that is worth thinking about is that Postgres (and SQLAlchemy) support JSON fields so you can dump python dicts into the field and when you pull them out they are proper dictionaries. Plus you can index into them which is handy.
I think the big trade-off is that the datamodel is no longer explicit so if you are joining on them, you lose a lot of the performance that relational dbs offer in query planning. It's probably not a huge deal for references directly since I doubt references will ever number more than a few hundred/thousand (though is could be a concern if query via the accession for other models). Also lost is the ability to know what attributes define the object and which are required and which are optional. Thus, the code working with this data needs to be robust.
So I would say favor tables for object with defined set of keys and where the values would be used in queries, but in cases where it is strictly metadata storage dump it into a json field.
Overall, I'm a big fan of this, but don't know enough about the UCSC Browser schema that @diekhans mentioned to know what the overhead of the transform would be.

Thanks for the feedback @diekhans and @andrewjesaitis, this is very helpful.
@andrewjesaitis, I tend to agree with you. I think we should lean towards using tables where possible in the interest of forward compatibility as well. We may not have queries on parts of the data model at the moment, but hopefully we will have them in the future. It'll be a lot easier to accommodate this if we already have the information we need in tables.
@diekhans One thing that I should clear up here is that SqlAlchemy is only for the registry. The actual implementations of the data sources for the particular objects (e.g. VariantSet) is separate. This is an important separation of concerns for me; we a well defined SQL based approach to manage the high-level data model, as this is what it excels at. For bulk data storage, there's any number of other things we can use. I don't think we should try to do both (metadata/data model management and bulk data storage) at the same time.
In this new approach, we can have any number of different types of (e.g.) VariantSet. Right now we have SimulatedVariantSet, and HtslibVariantSet, and the polymorphism between these is taken care of by SqlAlchemy. At query time, we create an instance of the correct type of object, which has all the information it needs to be able to run the query. So, for example, we might have UcscBrowserVariantSet which has a URL to access the information, and whatever IDs are necessary to map into the remote data model. Paging will be done at the level of the data source, so if there is a mapping  between GA4GH objects and the data source we should be able to accommodate it.
So, this change is not about changing how we access bulk data within a set, it's about changing how we store and access information about the sets themselves. It's also about creating a framework to allow us to be vastly more flexible about where and how we obtain the data that's within these sets. Does this make sense?

Oh, and on the id.  From the API perspective, I have never been
happy that id is server-local (really more like a pointer) and
that the true object data is is this ill-defined name think.
It's probably the right thing to do, but feels like that API
punted on a very important bioinformatics issue.
It makes me nervous to no have id unique within a server and
require context.  Maybe I am just being a purist.
How about explain the id trades off a bit more, maybe we can
come up with a good solution.

Yes, this makes a lot of sense...
I haven't looked at the change, so the object boundaries were
not clear.  This makes a lot sense for containers.
Jerome Kelleher notifications@github.com writes:

Thanks for the feedback @diekhans and @andrewjesaitis, this is very helpful.
@andrewjesaitis, I tend to agree with you. I think we should lean towards using
tables where possible in the interest of forward compatibility as well. We may
not have queries on parts of the data model at the moment, but hopefully we
will have them in the future. It'll be a lot easier to accommodate this if we
already have the information we need in tables.
@diekhans One thing that I should clear up here is that SqlAlchemy is only for
the registry. The actual implementations of the data sources for the particular
objects (e.g. VariantSet) is separate. This is an important separation of
concerns for me; we a well defined SQL based approach to manage the high-level
data model, as this is what it excels at. For bulk data storage, there's any
number of other things we can use. I don't think we should try to do both
(metadata/data model management and bulk data storage) at the same time.
In this new approach, we can have any number of different types of (e.g.)
VariantSet. Right now we have SimulatedVariantSet, and HtslibVariantSet, and
the polymorphism between these is taken care of by SqlAlchemy. At query time,
we create an instance of the correct type of object, which has all the
information it needs to be able to run the query. So, for example, we might
have UcscBrowserVariantSet which has a URL to access the information, and
whatever IDs are necessary to map into the remote data model. Paging will be
done at the level of the data source, so if there is a mapping between GA4GH
objects and the data source we should be able to accommodate it.
So, this change is not about changing how we access bulk data within a set,
it's about changing how we store and access information about the sets
themselves. It's also about creating a framework to allow us to be vastly more
flexible about where and how we obtain the data that's within these sets. Does
this make sense?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.*

Excellent, glad to hear it @diekhans!
Yeah, I hear you on the ID front. As I see it, there are two approaches we can take for ensuring repository-wide unique IDs:

Create a global ID table for all the externally visible objects in the registry, and rejection sample until we get a unique one when we're creating a new object. Pros: easy; cons: an extra table, and maintenance overhead (we have to remember to delete the IDs from this table).

Create a unique prefix for each externally visible object type in the registry. Since we'd like to use integers for IDs if at all possible (within the registry, at least), we could use the top 4 bits of the 32bit value for this. Pros: no extra overhead, and easy to maintain; Cons: mildly tricky to implement.

I'm assuming at the moment that individual IDs should be generated randomly to avoid any potential information side channels in the future. Since we're going to be storing sensitive data I think we should take this seriously.

Although approach is to use UUIDs.  Although it does generate
128 bit ids, I am not sure how big this impact actually is. .
They are not guaranteed to be unique, but I think we can live
with the probably of the server group being destroyed by a meteor
being hight than a collision.
The high-bit approach sits well with me.  It might be cleaner to
do it as two columns that form the key.
Jerome Kelleher notifications@github.com writes:

Excellent, glad to hear it @diekhans!
Yeah, I hear you on the ID front. As I see it, there are two approaches we can
take for ensuring repository-wide unique IDs:

Create a global ID table for all the externally visible objects in the
registry, and rejection sample until we get a unique one when we're
creating a new object. Pros: easy; cons: an extra table, and maintenance
overhead (we have to remember to delete the IDs from this table).

Create a unique prefix for each externally visible object type in the
registry. Since we'd like to use integers for IDs if at all possible
(within the registry, at least), we could use the top 4 bits of the 32bit
value for this. Pros: no extra overhead, and easy to maintain; Cons: mildly
tricky to implement.

I'm assuming at the moment that individual IDs should be generated randomly to
avoid any potential information side channels in the future. Since we're going
to be storing sensitive data I think we should take this seriously.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.*

Am I right to understand that the compound ID scheme will go away with this PR, at least for objects where we haven't required it?

Some progress made:

Decent support for metadata across references, variants and reads.
Good support for variants with vastly simpler paging algorithm.
Partial support for reads using same paging algorithm. (I haven't fully convinced myself this is correct yet though...)

Here's the current state of the registry DB schema. I've tried to follow the letter of the protocol here for forwards compatibility, except for one or two minor cases. It would be great if SQLers could have a look at this to make sure it all makes sense!

@david4096 Yes, CompoundId almost entirely goes away now. We still need it for variants and reads, but we'll be able to simplify the code a lot. Maybe 128 UUIDs are the way to go, but it just feels a bit wasteful to be joining on such large IDs. I can definitely be convinced here though.

I hope any require compound id support still gets handle through
polymorphism vs having to separate id paths.
Given all the advantages of UUIDs, I would like to see how much
impact they have for rejecting them based on worry.  If stored
at a number rather than a string, they are represented as two words
on a 64-bit computer.
I normally didn't worry about going from an one to two word
representation on a 16-bit computer which were orders of
magnitude slower.  Does it really matter here?
Jerome Kelleher notifications@github.com writes:

@david4096 Yes, CompoundId almost entirely goes away now. We still need it for
variants and reads, but we'll be able to simplify the code a lot. Maybe 128
UUIDs are the way to go, but it just feels a bit wasteful to be joining on such
large IDs. I can definitely be convinced here though.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.*

I hope any require compound id support still gets handle through
polymorphism vs having to separate id paths.
Not sure I follow here @diekhans, can you elaborate a bit? Basically we have VariantCompoundId and ReadCompoundId which contain enough information to uniquely identify a variant/read within a respository. These are used in two places: (1) for GET variant; and (2) in the new paging algorithm for reads/variants.

Given all the advantages of UUIDs, I would like to see how much
impact they have for rejecting them based on worry.  If stored
at a number rather than a string, they are represented as two words
on a 64-bit computer.
It's not quite as simple as that though, as SqlAlchemy doesn't have a native 128 bit number type, so we'll have to do some fiddling around to make it work across DBs. Not necessarily a big deal, but there should be some real benefit before taking on this complexity. Being able to treat IDs directly as ints in Python code rather than bytes is handy as well. What are the benefits of UUIDs, other than making the probability of collision small enough that it can be disregarded (which is probably also true of a uniformly generated 64 bit number)?

Anyway, it'll be easy to change this once we have the code working. All external ID columns are allocated by a single function, so it'll be simple to change it. Right now we're just generating a random 31 bit value and not worrying about collisions. We should definitely look at this properly when the rest of the code is up to scratch.

point #1 is just to keep an object for an id, as opposed to
baking any assumptions into the code
point #2 the benefit of UUIDs is they can be used cross table,
database, servers with some centralized authority to allocate
them.  I have never seen an random number algorithm that can do
this with 64-bit numbers.  Although I discussion of 64-bit host
ids generated with timestamps, I would like to see an academic
paper on an algorithm before trusting it.  Also, UUIDs are the
defacto standard why to generate unique ids.
although #1 hides it all anyway.
Python can handled both 128-bit ints and has a native UUID type.
Postgress has a UUID type, sqllite and mysql can have int(128).
It probably breaks on Sql Server  ;-)
See
http://docs.sqlalchemy.org/en/latest/core/custom_types.html#backend-agnostic-guid-type
on how to do a custom UUID type.
The disadvantage of UUIDs is they you don't have any information
to identify where the object is (table, file line, URL, etc)
Having id has a tuple (CompoundId) does this.
I guess this comes down to the properties we want id to have.
How about explicitly documenting (i.e. a comment) the CompoundId
class with the motivation??
Jerome Kelleher notifications@github.com writes:

I hope any require compound id support still gets handle through
polymorphism vs having to separate id paths.
Not sure I follow here @diekhans, can you elaborate a bit? Basically we
have VariantCompoundId and ReadCompoundId which contain enough information
to uniquely identify a variant/read within a respository. These are used in
two places: (1) for GET variant; and (2) in the new paging algorithm for
reads/variants.

Given all the advantages of UUIDs, I would like to see how much
impact they have for rejecting them based on worry. If stored
at a number rather than a string, they are represented as two words
on a 64-bit computer.
It's not quite as simple as that though, as SqlAlchemy doesn't have a
native 128 bit number type, so we'll have to do some fiddling around to
make it work across DBs. Not necessarily a big deal, but there should be
some real benefit before taking on this complexity. Being able to treat IDs
directly as ints in Python code rather than bytes is handy as well. What
are the benefits of UUIDs, other than making the probability of collision
small enough that it can be disregarded (which is probably also true of a
uniformly generated 64 bit number)?

Anyway, it'll be easy to change this once we have the code working. All
external ID columns are allocated by a single function, so it'll be simple to
change it. Right now we're just generating a random 31 bit value and not
worrying about collisions. We should definitely look at this properly when the
rest of the code is up to scratch.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.*

@diekhans Would this publication be something along the lines of what you might be looking for?
T. Nishimura, Tables of 64-bit Mersenne Twisters ACM Transactions on Modeling and Computer Simulation 10. (2000) 348--357.
The publication is available here for download:
http://dl.acm.org/citation.cfm?id=369540
The 64-bit implementation of the code is available here for download:
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt64.html

OK, UUIDs are good, but there are some issues:

We don't need globally unique IDs,  just unique IDs within a repository. I don't see any point in generating a globally unique ID for say, a Dataset. What good does it do? This tells us nothing about its contents, and has no meaning across different repositories. You can say the same for ReadGroupSets and VariantSets, etc. Does it matter if there are ID clashes between repositories? The probability of this is really small, and unless ID formats are mandated by the schema, there are no guarantees anyway.
Which specific UUID form are you in favour of? If it's a UUID1 or UUID3, then we're leaking a lot of information which might or might not turn out to be an information side channel. (I think we should keep this in mind since we'll be dealing with sensitive data.)  It it's UUID4 then we're basically just generating a 122 bit uniform random number, most likely by drawing from /dev/urandom. The collision probabilities are just based on this source being uniform. There's no special  special sauce here, we can use exactly the same code to generate our own random numbers. A 64 bit random number will effectively be the same thing as a UUID4. The probability of a collision within a repository is about the same as dropping a ball bearing from a jet randomly and hitting, say, an egg sandwich (to paraphrase Douglas Adams). And we can make sure it doesn't happen pretty easily by using the top byte as a table specific value.

So, yes UUIDs solve some problems, but they don't solve everything. As you pointed out, we won't be able to tell what type of object an ID came from if we use UUID.  Also, I'm not sure that the problem they do solve (global uniqueness) is a problem that we actually need to solve.
Anyway, I think we should put this discussion off until after the code is ready for use and we can try out the various options. It'll be very easy to change, as I've deliberately isolated all the columns that generate externally visible IDs. The GUID SqlAlchemy type looks great, and would be easy to plug in.
In more progress in the code itself, I've just fixed the long standing issue with search over multiple read groups (within a read group set). It turned out to be pretty straightforward under the new organisation.

Agree we don't have a federated API and no need to support global
uniqueness.
My reason for suggesting UUIDs is that is the standard way to
generate uniques ids..  The probability is much higher that a
meteor will destroy your data center than a UUID collides.  The
logical is do it the common way unless the common way doesn't
work.
However, if you want the id to have actual meaning other than a
strong yet independent uniqueness property, it's the wrong tool.
I am trying to simulate discussion; not pushing anything.
Nice on fixing the read group stuff!!
Jerome Kelleher notifications@github.com writes:

OK, UUIDs are good, but there are some issues:

We don't need globally unique IDs, just unique IDs within a repository. I
don't see any point in generating a globally unique ID for say, a Dataset.
What good does it do? This tells us nothing about its contents, and has no
meaning across different repositories. You can say the same for
ReadGroupSets and VariantSets, etc. Does it matter if there are ID clashes
between repositories? The probability of this is really small, and unless
ID formats are mandated by the schema, there are no guarantees anyway.
Which specific UUID form are you in favour of? If it's a UUID1 or UUID3,
then we're leaking a lot of information which might or might not turn out
to be an information side channel. (I think we should keep this in mind
since we'll be dealing with sensitive data.) It it's UUID4 then we're
basically just generating a 122 bit uniform random number, most likely by
drawing from /dev/urandom. The collision probabilities are just based on
this source being uniform. There's no special special sauce here, we can
use exactly the same code to generate our own random numbers. A 64 bit
random number will effectively be the same thing as a UUID4. The
probability of a collision within a repository is about the same as
dropping a ball bearing from a jet randomly and hitting, say, an egg
sandwich (to paraphrase Douglas Adams). And we can make sure it doesn't
happen pretty easily by using the top byte as a table specific value.

So, yes UUIDs solve some problems, but they don't solve everything. As you
pointed out, we won't be able to tell what type of object an ID came from if we
use UUID. Also, I'm not sure that the problem they do solve (global uniqueness)
is a problem that we actually need to solve.
Anyway, I think we should put this discussion off until after the code is ready
for use and we can try out the various options. It'll be very easy to change,
as I've deliberately isolated all the columns that generate externally visible
IDs. The GUID SqlAlchemy type looks great, and would be easy to plug in.
In more progress in the code itself, I've just fixed the long standing issue
with search over multiple read groups (within a read group set). It turned out
to be pretty straightforward under the new organisation.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.*

OK, this is starting to come together, so it would be really helpful to get some early review on the code as it is.
Main changes:

Registry DB locations are now specified with a SQLAlchemy connection string, e.g., sqlite:///file.db or postgres://server.com/database.
The entire ga4gh.datamodel package will be removed, and is being refactored into the new ga4gh.datasource package. The datasource package currently contains two modules simulator and htslib. The idea is to localise all the code that accesses (or generates) the data in a similar way so that it can share functionality.
The paging functionality for reads and variants has been pushed down into the datasource layer. This has greatly simplified these code paths, and allowed us to simply implement multi-readgroup searches.
Top level metadata is now entirely modelled in SQL using the SqlAlchemy ORM layer. All queries should be now done on-line against a fully updateable DB.
To fit in with the way SqlAlchemy is best used, there has been a substantial style change. All attributes on objects in the registry are now accessed via public attributes. Also all new code is using snake_case where possible. Test code still uses mostly camelCase in an effort to keep the diff getting too massive.

TODO

Update the CompoundId structure, and greatly simplify it.
Port ontologies
Port Variant Annotations code.
Port Sequence annotations code.
Improve documentation and general code layout.
Come up with a way of unit testing Postgres support (particularly for repo manager interface).

It would be good to get some feedback on this @dcolligan --- would you mind having a quick look through?

Well this is a massive change, and a work in progress, but I see the motivation and the benefits.  Having a bunch of SQL strings (that needed to be updated with every field change) was getting cumbersome.  On-line updates that don't require a server restart is a win.  Multiple DB support is a win.  Greater extensibility is a win.  Using well-tested third party libraries over custom code is almost always a good idea.
As far as answers to the questions you posed at the outset, I would favor stuffing fields in a JSON blob until there is a proven motivation for needing to normalize them in some kind of relational schema.  IDs: registry-unique would be nice (if strictly unnecessary), globally-unique seems unnecessary at this point.  64 bits should be sufficient.

I don't know if it was resolved it the POC, however the GA4GH API specification does
require that ids be unique across the server
from https://github.com/ga4gh/schemas/blob/master/doc/source/api/apidesign_intro.rst

ids are unique within the scope of the server instance

I've kicked this can down the road a bit @diekhans. This will be easy to sort this out once the code is merged and stable. For now, we're just generating random 32 bit numbers for every externally visible object. For practical purposes this means that IDs are unique within a server instance until we sort this out properly.

Has performance testing been done using the SQL offset/limit
mechanism for paging?
I am concern that it will be slow to get progressively slower
subsequent page request, especially for queries that are not
returning all rows in physical order.  Such as a range search
for variants.

Not at scale, no. I would have thought that this would be fine once the query is using an index? All queries from the registry DB should use an index, as a matter of principle.
More specialised queries like range searches over variants are outside the scope of this PR.

Even if it's index, it has to play back the query and run it up
to the desired offset.  This slows down the larger the index
gets.  See
https://developer.wordpress.com/2014/02/14/an-efficient-alternative-to-paging-with-sql-offsets/
http://sqlperformance.com/2015/01/t-sql-queries/pagination-with-offset-fetch
This will should be fine if the data is small, as with most
containers.  A couple of random mysql trials showed significant
slowdown with an offset of 40000 vs 1.
your mileage may vary
Jerome Kelleher notifications@github.com writes:

Not at scale, no. I would have thought that this would be fine once the query
is using an index? All queries from the registry DB should use an index, as a
matter of principle.
More specialised queries like range searches over variants are outside the
scope of this PR.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.*

Hmm, that is interesting! OK, this is something we'll have to consider. If we're searching on primary keys in table order then we're fine, as we can use the ID as the page token and resume from there. If not, then we'll have to think of something else.
Thanks for the heads-up @diekhans, I had not considered this issue...

Closing for now.  We can open another branch if we decide to pursue this.

authors: andrewjesaitis david4096 dcolligan diekhans jeromekelleher pgrosu


text:
🛑 Revista is down

In 7d4b910, Revista (https://pensamientopenal.com.ar/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Revista is back up in 1948017.


text:
test

test

/build_image

repo: gabriel-samfira/scripts


text:
🛑 Plex is down

In 069f1f3, Plex (https://plex.gabebryk.com/web/index.html) was down:

HTTP code: 521
Response time: 85 ms

Resolved: Plex is back up in 01c39ae after 5 minutes.

repo: gabrielbryk/vigilant-octo-carnival


text:
Abrir arquivo GDF no VOSviewer

URL
https://youtu.be/Hqm-zCDLvrg

Close

authors: gabrielmacedo gabrielmacedoanac

repo: gabrielmacedoanac/sub


text:
Support BlazeComponents?

Hi guys,
this does NOT work with BlazeComponents.
Would it be an easy thing for you to support it? See https://github.com/peerlibrary/meteor-blaze-components/issues/154

I ran into this as well and submitted a pull request that supports this.

Legend, thanks, @duce3! Merged and published as v1.4.2. Thanks for your contribution!

authors: duce3 gadicc thebarty

repo: gadicc/meteor-blaze-react-component


text:
IE bookmarklet link drag disabled

So this is a pretty specific issue. It affects only IE (tested in IE10 & IE11) and only bookmarklet links.
While using React DnD all bookmarklet links become completely undraggable. Users are unable to drag them to the Favorites bar. Normal links are unaffected.
Problem might be related with the 'dragstart' listeners in the HTML5 backend. (Tested by commenting them out, which fixed that problem but ofc broke the plugin)
CodePen to showcase the problem: http://codepen.io/npredovan/pen/Kpgdvo

+1. Experienced the same issue and it's very annoying. Any way of fixing this would be very handy.

Can you please test if this branch solves the issue?
https://github.com/gaearon/react-dnd/pull/159
My BrowserStack trial has expired while I tried to fix it..
You can
npm install
npm start

# wait quite a bit
open http://localhost:8080/examples-dustbin-multiple-targets.html

and try dragging the test link onto the favorites bar.
If this works, let me know and I'll refactor a little and release this as a patch.

For some context, the problem is that IE interprets links without a valid href not as links, but as draggable text. Which got me thinking that we actually should support draggable text, it's a valid use case.

Tried it but getting an error on that page: Uncaught ReferenceError: Component is not defined IndexPage.js?8307:158

Are you doing a clean install? It might not work inside your node_modules if that's where you're running it.

Yap clean install. Other pages seem to work fine, only problem is with examples.

@Predjo
You're right. It seems like a Babel bug.
You should be able to fix it by replacing Component with ExampleComponent in IndexPage on 115 and 120 lines.

@gaearon
New problem. Everything now works in chrome but in IE this error:
'Symbol' is undefined File: eval code (583), Line: 39, Column: 1

@Predjo
Whoops! I forgot to include the polyfill. Can you just change them back to strings like in the current version?

I'm talking about these lines:
https://github.com/gaearon/react-dnd/pull/159/files?diff=unified#diff-56783ea3de7884c02df6b7259025eb8dL11

@gaearon
Hehe finally managed to run it and it works. Im able do drag it around and drop it to Favorites bar :+1:

OK, great. I'll refactor and release this in a few days.

Hey @gaearon any ETA on the new release that includes this fix?

This should be fixed in 1.1. Please verify.

Confirmed working, thx @gaearon :+1:

(Also please skip 1.1 and go straight to 1.1.1 because it fixes a Safari bug)

authors: Predjo freakycue gaearon

repo: gaearon/react-dnd


text:
AMD Support

Hi,
Continuing the discussion in #130 about AMD support here.
You (@gaearon) mentioned in #130 that you don't plan to provide an AMD version of Redux DevTools, just like there is none for redux itself.
I probably didn't explain myself correctly - I'm not looking for an "AMD" version, I just need it to be UMD compliant.
Redux is built using webpack so I can use it (and currently do) with RequireJS.
Redux DevTools is not built using webpack so I can't use it (well, I tried and failed).
I hope this explanation is better.
I'm of course willing to submit a PR that tries to add support, I just want to make sure I'm on the right track here.
Thanks for your help and patience :)

Oh, I see. We can probably add a UMD build. Can you take a look at how react-redux repo does it with Webpack config and submit a PR doing it in a similar fashion?

Sure, that was my plan :)
I'll try to make it happen during the weekend.

Created #140

Hey, I'm really sorry for the churn but I split the packages already.
Can you please make separate PRs to:

this project (against the next branch)
https://github.com/gaearon/redux-devtools-log-monitor
https://github.com/gaearon/redux-devtools-dock-monitor

Sorry if that's too much, but it's hard to move forward when everything is in one place. :-(

No problem, I'll take care of it

repo: gaearon/redux-devtools


text:
Fix issue #215, Allow spaces in Python pipeline name

Fixes #215
Wrap the argument for pip install with ' so that <spaces> are escaped by shell.
Refer the issue for more info.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@4c6678f). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff            @@
##             master    #216   +/-   ##
========================================
  Coverage          ?   62.1%
========================================
  Files             ?      49
  Lines             ?    4059
  Branches          ?       0
========================================
  Hits              ?    2521
  Misses            ?    1124
  Partials          ?     414

Impacted Files
Coverage Δ

workers/pipeline/update_pipeline.go
52.54% <ø> (ø)

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 4c6678f...0c06c6e. Read the comment docs.

Hello! Thank you for your contrib. Will take a look at this shortly.

authors: Shivakishore14 Skarlso codecov-io

repo: gaia-pipeline/gaia


text:
Problème sometime with utf8 encoded string

Some utf8 encoded string don't work after being process.
In indenter.php:
replace l75
$input = preg_replace('/\s{2,}/', ' ', $input);
with
$input = preg_replace('/\s{2,}/u', ' ', $input);
and (l158)
$output = preg_replace('/(<(\w+)[^>]>)\s(</\2>)/', '\1\3', $output);
with
$output = preg_replace('/(<(\w+)[^>]>)\s(</\2>)/u', '\1\3', $output);
Solve my problem ... Maybe should be commited ?
Best regards,

Great tool, but I have this annoying mistake as well.
Probably making extensive use of regex somehow generates the problem?

repo: gajus/dindent


text:
期望在编辑器层级中增加拷贝节点的能力

在轨道编辑等场景，会有频繁创建节点的诉求。此时如果能在某个节点的基础上去对新的节点属性进行微调会大大提升编辑的效率

期望能在右键点击节点时增加拷贝节点的能力，拷贝后可选择任意一个节点将拷贝的节点放置到该节点的同级或子级。

https://github.com/galacean/editor/issues/1519

repo: galacean/engine


text:
Metabolomics: update requirements metadata format

update metadata after changes introduced to support learning paths (https://github.com/galaxyproject/training-material/pull/1149) (to fix failing links)

ugh github plugin was weird. It was supposed to wait for the test to pass, sorry :s

authors: erasche shiltemann

repo: galaxyproject/training-material


text:
General intro to climate data fix #2042

Define climate
overview of different type of climate data (observations, reanalysis, climate models)
introduction to SSP (Shared soci-economic pathway and Shared policy assumptions to help users to choose the right climate datasets.

Ready to be reviewed

Thanks @malloryfreeberg fo spotting all these typos! I think I fixed all of them.

You're welcome @annefou ! I really like the topic and I think it will be interesting to many users :)
I'm going to try to attempt and build the website locally so I can review the slides in their final form. Stay tuned!

@malloryfreeberg if it helps I have it at https://annefou.github.io/training-material/topics/climate/slides/introduction.html#1

@malloryfreeberg That's a very good suggestion! I was not aware of this tip (with my limited knowledge of mardown!). Thanks a lot; I am adding them now for each image.

@malloryfreeberg Big thank you for your review!

Lovely! Thanks @annefou and @malloryfreeberg!

authors: annefou bgruening malloryfreeberg


text:
Small typos

Hey, I just spotted some small typos while reading your tutorial. Cheers

Thanks @Brilator!

authors: Brilator bgruening


text:
Update 10x preprocessing tutorial

uses latest STARSolo
different order of the parameters for STARSoloe
Slightly different numbers from the previous tutorial
Summary stats from the latest version has a different naming scheme
Rank barcode plot y-axis title was changed

We should probably update the associated workflow at some point soon as well.

thanks, @hexylena

authors: hexylena pavanvidem


text:
fix including tags

sorry @nomadscientist I broke your singlecell home.

I forgive you given you've sussed a fix! :)

please merge it :)

authors: hexylena nomadscientist


text:
Update psm2sam

Now set specific versions of customProDB and proBAMr to download: this commit fixes the bogus reverse-strand CDNA sequences

This update also includes parsing the File: field in the PeptideShaker PSM report spectrum title. So this is for you @pravs3683 :)
@jj-umn Can you update the MSI instance after I merge this?

Thank you Matt.
On Mon, Sep 25, 2017 at 10:36 AM, Matt Chambers notifications@github.com
wrote:

This update also includes parsing the File: field in the PeptideShaker
PSM report spectrum title. So this is for you @pravs3683
https://github.com/pravs3683 :)
@jj-umn https://github.com/jj-umn Can you update the MSI instance after
I merge this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/galaxyproteomics/tools-galaxyp/pull/200#issuecomment-331920742,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFqnBeJL8yK2eEi88NIdzKxAVZgg-AEWks5sl8iXgaJpZM4Pi6xW
.

repo: galaxyproteomics/tools-galaxyp


text:
rst docs on pypi

PyPi is not rendering the long_description in setup.py (which is equal to the README.rst)
the :math: directive seems to be the culprit.  will figure it out later.

You can do this to cerify your long_description locally:
$ pip install readme
$ python setup.py check -r -s

hmmm ... I get,
python setup.py check -r -s
running check
warning: Check: This command has been deprecated. Use `twine check` instead: https://packaging.python.org/guides/making-a-pypi-friendly-readme#validating-restructuredtext-markup

warning: Check: The project's long_description has invalid markup which will not be rendered on PyPI. The following syntax errors were detected:
line : Warning: No MathJax URL specified, using local fallback (see config.html)

error: Please correct your package.

this seems relevant ... https://github.com/pypa/readme_renderer/issues/115

fixed by removing math directive from readme.rst

authors: galtay ngoldbaum

repo: galtay/hilbertcurve


text:
release: v2024.3.4

bump galter-subjects-utils dep for fix
release: v2024.3.4

Bumpety bump, mergedy-merge, releasy-release

repo: galterlibrary/invenio-subjects-mesh


text:
feat: only flowing milk turns to white powder

…sion where people used up their milk production without knowing they don't have toThis pull request will be merged when its done, when the following checkboxes are checked and when it passes review.
basic checks

[x] feature works in singleplayer
[ ] feature works in multiplayer (verify no de-sync issues)
[x] feature works in existing world

feature specific checks

[ ] test case 1

[ ] test case 2

replace white powder recipe with a recipe that only accept specifically tagged fluid in a way that causes only flowing milk to work.

add fake flowing milk fluid

add fake recipe for white powder using fake fluid milk

link milk and fluid milk using info panel

.

 yarden.zamir on Discord says

authors: Discord-Github-Bridge Yarden-zamir


text:
🛑 Roblox Devforum is down

In e157b98, Roblox Devforum (https://devforum.roblox.com) was down:

HTTP code: 403
Response time: 46 ms

Resolved: Roblox Devforum is back up in 20c166b after 12 minutes.


text:
Implement the option to save simtel_array histograms to hdf5 tables and export them

I would like to adapt SimtelHistograms from simtel_histograms.py to allow saving the histograms to hdf5 files, as it is already done in CorsikaHistograms from corsika_histograms.py. This will standardise histograms produced by corsika and simtel_array within simtools. The advantage is to be able to use the same tool later to compare the histograms among different simulations.

By the way, this functionality is already partially in ctapipe and it's HDF5 DLx data format. I say partially, as we only currently write out the simulated events histograms (the ones we need to compute sensitivity later).  But it could easily be extended.

Hi @kosack, thanks for this suggestion. For now I am keeping it simple in simtools, using write_table from ctapipe.io.astropy_helpers to append all the histogram tables to the hdf5 file. I will further look into this to see if we can focus on the simulated events histograms instead of all histograms, in which case I could change to use the ctapipe data model as you mentioned.

authors: VictorBarbosaMartins kosack

repo: gammasim/simtools


text:
Added Script to Download File from Internet

Python script that takes URL of the file to download and downloads it as FILENAME  to DEST
It manages memory for the download of large files by fetching content from the server in chunks specified via --chunk-size.

Sample run output:

Downloaded file:

repo: ganeshrajadev/awesome-python


text:
Error text is repeated and clipped in single line mode

I know I can use the multiline option to get around this issues, but this causes the app to crash when setting an error message to a spinner generated in the code.

Thank's for this issue, it will be fixed in the next release !

Closing for inactivity. Feel free to reopen if needed.

authors: KrasimirGatevMentorMate ganfra mdumrauf

repo: ganfra/MaterialSpinner


text:
ch6 g2o_curve_fitting. no matching function for call to ...

Those days when I try to compile ch6's g2o code, I got an error with
error: no matching function for call to ‘g2o::BlockSolver<g2o::BlockSolverTraits<3, 1>>::BlockSolver(g2o::BlockSolver<g2o::BlockSolverTraits<3, 1> >::LinearSolverType*&). I run the code on a virtual machine with Ubuntu-16.04 installed.
Then I found a solution in g2o's example. See following code.
typedef g2o::BlockSolver<g2o::BlockSolverTraits<3, 1> > Block;
typedef g2o::LinearSolverDense<Block::PoseMatrixType> MyLinearSolver;
// Block::LinearSolverType* linearSolver = new g2o::LinearSolverDense<Block::PoseMatrixType> ();
// Block* solver_ptr = new Block(linearSolver);
g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg(
        g2o::make_unique<Block>(g2o::make_unique<MyLinearSolver>())
);

I am not sure what's the problem, but anyway it was solved. So I post it here in case you have the same problem.
Thanks for your informative book. 👍

I met the same problem as you got when i got the newest g2o source code from github. use  slambook/3rdparty/g2o.tar.gz instead, I have all two errors will be fixed.
Wish the same useful for you.

新版本改掉了这个数据结构,用2017.6月的老版本就行了,高博书里自带的三方库里的g2o也符合

@suljaxm 的确，应该是g2o的版本问题。我本来也有同样的问题，之后我删除了github上的最新版本g2o,采用了高博提供的g2o，程序就能正常编译了。

我也遇到了同样的问题， 新版的g2o，BlockSover的构造器是unique_ptr的，unique_ptr不支持拷贝构造，所以传参必须通过move，我把改的地方发到下面，可供参考。
参考链接1 参考修改代码：
参考链接2 unique_ptr说明：
参考链接3 std::move的使用：
#include <iostream>
#include <g2o/core/base_vertex.h>
#include <g2o/core/base_unary_edge.h>
#include <g2o/core/block_solver.h>
#include <g2o/core/optimization_algorithm_levenberg.h>
#include <g2o/core/optimization_algorithm_gauss_newton.h>
#include <g2o/core/optimization_algorithm_dogleg.h>
#include <g2o/solvers/dense/linear_solver_dense.h>
#include <Eigen/Core>
#include <opencv2/core/core.hpp>
#include <cmath>
#include <chrono>
using namespace std;

// 曲线模型的顶点，模板参数：优化变量维度和数据类型
class CurveFittingVertex: public g2o::BaseVertex<3, Eigen::Vector3d>
{
public:
    EIGEN_MAKE_ALIGNED_OPERATOR_NEW
    virtual void setToOriginImpl() // 重置
    {
        _estimate << 0,0,0;
    }

    virtual void oplusImpl( const double* update ) // 更新
    {
        _estimate += Eigen::Vector3d(update);
    }
    // 存盘和读盘：留空
    virtual bool read( istream& in ) {}
    virtual bool write( ostream& out ) const {}
};

// 误差模型 模板参数：观测值维度，类型，连接顶点类型
class CurveFittingEdge: public g2o::BaseUnaryEdge<1,double,CurveFittingVertex>
{
public:
    EIGEN_MAKE_ALIGNED_OPERATOR_NEW
    CurveFittingEdge( double x ): BaseUnaryEdge(), _x(x) {}
    // 计算曲线模型误差
    void computeError()
    {
        const CurveFittingVertex* v = static_cast<const CurveFittingVertex*> (_vertices[0]);
        const Eigen::Vector3d abc = v->estimate();
        _error(0,0) = _measurement - std::exp( abc(0,0)*_x*_x + abc(1,0)*_x + abc(2,0) ) ;
    }
    virtual bool read( istream& in ) {}
    virtual bool write( ostream& out ) const {}
public:
    double _x;  // x 值， y 值为 _measurement
};

int main( int argc, char** argv )
{
    double a=1.0, b=2.0, c=1.0;         // 真实参数值
    int N=100;                          // 数据点
    double w_sigma=1.0;                 // 噪声Sigma值
    cv::RNG rng;                        // OpenCV随机数产生器
    double abc[3] = {0,0,0};            // abc参数的估计值

    vector<double> x_data, y_data;      // 数据

    cout<<"generating data: "<<endl;
    for ( int i=0; i<N; i++ )
    {
        double x = i/100.0;
        x_data.push_back ( x );
        y_data.push_back (
            exp ( a*x*x + b*x + c ) + rng.gaussian ( w_sigma )
        );
        cout<<x_data[i]<<" "<<y_data[i]<<endl;
    }

    // 构建图优化，先设定g2o
    typedef g2o::BlockSolver< g2o::BlockSolverTraits<3,1> > Block;  // 每个误差项优化变量维度为3，误差值维度为1

    //-----修改以下注释到下行代码-----------//
    // Block::LinearSolverType* linearSolver = new g2o::LinearSolverDense<Block::PoseMatrixType>(); // 线性方程求解器
    std::unique_ptr<Block::LinearSolverType> linearSolver ( new g2o::LinearSolverDense<Block::PoseMatrixType>());

    //-----修改以下注释到下行代码-----------//
    //Block* solver_ptr = new Block( linearSolver );      // 矩阵块求解器
    std::unique_ptr<Block> solver_ptr ( new Block ( std::move(linearSolver)));

    // 梯度下降方法，从GN, LM, DogLeg 中选
    //-----修改以下注释到下行代码-----------//
    // g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg( solver_ptr );
    g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg ( std::move(solver_ptr));

    // g2o::OptimizationAlgorithmGaussNewton* solver = new g2o::OptimizationAlgorithmGaussNewton( solver_ptr );
    // g2o::OptimizationAlgorithmDogleg* solver = new g2o::OptimizationAlgorithmDogleg( solver_ptr );
    g2o::SparseOptimizer optimizer;     // 图模型
    optimizer.setAlgorithm( solver );   // 设置求解器
    optimizer.setVerbose( true );       // 打开调试输出

    // 往图中增加顶点
    CurveFittingVertex* v = new CurveFittingVertex();
    v->setEstimate( Eigen::Vector3d(0,0,0) );
    v->setId(0);
    optimizer.addVertex( v );

    // 往图中增加边
    for ( int i=0; i<N; i++ )
    {
        CurveFittingEdge* edge = new CurveFittingEdge( x_data[i] );
        edge->setId(i);
        edge->setVertex( 0, v );                // 设置连接的顶点
        edge->setMeasurement( y_data[i] );      // 观测数值
        edge->setInformation( Eigen::Matrix<double,1,1>::Identity()*1/(w_sigma*w_sigma) ); // 信息矩阵：协方差矩阵之逆
        optimizer.addEdge( edge );
    }

    // 执行优化
    cout<<"start optimization"<<endl;
    chrono::steady_clock::time_point t1 = chrono::steady_clock::now();
    optimizer.initializeOptimization();
    optimizer.optimize(100);
    chrono::steady_clock::time_point t2 = chrono::steady_clock::now();
    chrono::duration<double> time_used = chrono::duration_cast<chrono::duration<double>>( t2-t1 );
    cout<<"solve time cost = "<<time_used.count()<<" seconds. "<<endl;

    // 输出优化值
    Eigen::Vector3d abc_estimate = v->estimate();
    cout<<"estimated model: "<<abc_estimate.transpose()<<endl;

    return 0;
}

@zhkmxx9302013 , I had also met this problem, thanks. You can make a pull request maybe.

@PretDB Glad it works to you, but no need make a pull request, it's the problem of g2o version.  ∩_∩

It works! Thanks.

authors: Harry-Zhi PretDB lianchengyue shanpenghui shaozu suljaxm zhkmxx9302013


text:
Add API Server metrics about dropped requests

How to categorize this PR?

/area monitoring
/kind enhancement
/priority normal
What this PR does / why we need it:
Adds metrics and panels to observe dropped requests of the API Server.

Which issue(s) this PR fixes:
Fixes #3127
Fixes #3225
Special notes for your reviewer:
/cc @timebertt @lumi017
Release note:

Add panels to the `Kubernetes API Server Details` Dashboard for dropped requests.

Thanks! Will have a look tomorrow :)
/invite @lumi017
Can you also have a look?

Panels now include API Server instance

Panels now include API Server instance

Don't you think, that this will get a bit overwhelming, if there are a lot of API servers (like up to 5 or so)?
I think it makes sense, to rather aggregate all metrics (sum by type, resource, code). WDYS?

Don't you think, that this will get a bit overwhelming, if there are a lot of API servers (like up to 5 or so)?
I think it makes sense, to rather aggregate all metrics (sum by type, resource, code). WDYS?

I agree. I changed the panels and they no longer aggregate by instance. PTAL

repo: gardener/gardener


text:
gardenlet: Stop deleting Ingress resources for Seed via the extensions/v1beta1 API

How to categorize this PR?

/area control-plane
/kind cleanup
What this PR does / why we need it:
From https://kubernetes.io/docs/reference/using-api/deprecation-guide/#ingress-v122:

The extensions/v1beta1 and networking.k8s.io/v1beta1 API versions of Ingress is no longer served as of v1.22.

Migrate manifests and API clients to use the networking.k8s.io/v1 API version, available since v1.19.

From https://github.com/gardener/gardener/blob/v1.57.1/docs/usage/supported_k8s_versions.md:

The minimum version of a seed cluster that can be connected to Gardener is 1.20.x. Please note that Gardener does not support 1.25 seeds yet.

Having in mind both of the conditions, gardenlet can stop deleting Ingress resources for Seeds via the extensions/v1beta1 API. This was only required for Seeds with K8s < 1.19.
Which issue(s) this PR fixes:
Fixes #6846
Special notes for your reviewer:
GKE for example keeps track of removed APIs usage and against K8s v1.23 GKE Seed gardenlet tries to delete the Ingress resources for a Seed  via the extensions/v1beta1 API:

Release note:

gardenlet no longer tries to delete Ingress resources for a Seed via the `extensions/v1beta1` API (no longer served as of K8s 1.22). As Gardener supports only Seed clusters with K8s >= 1.20, it is enough to delete the Ingress resources via the `networking.k8s.io/v1` API (available since v1.19).

/assign

Thanks!
/lgtm
/approve

/test pull-gardener-integration

/test pull-gardener-e2e-kind-migration

authors: ialidzhikov rfranzke


text:
New reconcile tests

How to categorize this PR?

/area robustness
/kind enhancement
/priority 3
What this PR does / why we need it:
This PR adapts the unit and integration tests for the new reconcile (see also PR #497).
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Release note:

NONE

/test

/test

/test

Testrun e2e-d7skw-wf was started with NewReconcile = false.

repo: gardener/landscaper


text:
Register

@JuliaRegistrator register

Error while trying to register: "Tag with name v0.2.0 already exists and points to a different commit"

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/93548
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v1.0.0 -m "<description of version>" 32cd1e86144c032985b18083e484323cd6fc4581
git push origin v1.0.0

@JuliaRegistrator register

Registration pull request updated: JuliaRegistries/General/93548
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v1.0.0 -m "<description of version>" 88909abd1dc6081b7b3ff5e85397bfd25d0857ec
git push origin v1.0.0

authors: JuliaRegistrator garrekstemo


text:
Send xml data to contructor

Hi! I really like declxml, and it almost does exactly what I was looking for. I understand if this is not something you want to support.
I would like to construct a custom class from an XML file, but do the transformations of the data in the constructor. As I understand the setup right now, attributes are "magically" set from declxml, instead of being sent to the constructor where I could transform them before saving them.

Is there a way to do this with declxml?
If not, is this something you would consider adding?

That is a great suggestion. You are right, currently there is no way in declxml to have values sent to a class constructor; declxml calls setattr to set the attribute values on an object.
Hmm...I think this would be possible. When parsing XML data for objects, declxml reads all the data into a dict first and then creates a new instance of the object before setting all attribute values with setattr. I think receiving the XML data in an object's constructor would require the constructor to take all of its arguments as keyword arguments (since otherwise we don't know what order the parameters are to be passed in to the constructor). Then, declxml could call that constructor by unpacking the dictionary of all the parsed XML data.
What do you think of that solution?

That sounds like a great idea! Another would be to just take a "data" argument, and send in all the raw data to the constructor. Either way my code would be much nicer, when not having to create an object with the raw values first, and then send them to the constructor for refinement.

Ohh this would be really nice, I've used construct's Adapters like this. In my case, I'd rather not send to the constructor just a single attribute. I'm facing XML tags like the following:
<track coords="X Y Z" data="S 255 33845 12623 4773 33791..." description="" label="cat7" nItems="-1" nPoints="584" nSegs="1" scaleFactor="10000.0"/>

where I need the coord attribute for making sense out of the data attribute, which is in the form of
data = "S start_time X1 Y1 Z1 X2 Y2 Z2... S start_time_2 X1 Y1 Z1"

but if coords="V", for example, it becomes
data = "S start_time V1 V2 V3 V4 V5 V6... S start_time_2 V1 V2 V3"

Embedding this into the parsing logic would free me for the trouble of case by case serialising and deserialising and permit me to work with the data as lists or numpy arrays

@marnunez would the ValueMapping feature being added in #16 support your use case? With these new changes, you can define a to_xml and a from_xml function. The from_xml function could take a raw dictionary parsed from the XML data and provide it to your object's constructor with whatever arguments it needs, and the to_xml function could ask the object to convert itself back into a dictionary so that it can be serialized XML.

Support for processing hooks to allow this capability is now available in the latest release from PyPi

authors: EmilStenstrom gatkin marnunez

repo: gatkin/declxml


text:
Maven Plugin: consider switching from commons-exec to zt-exec

or even raw ProcessBuilder

Closing for now. Why change something that works.

repo: gatling/gatling


text:
Issue #2971. Split password into keyStorePassword and keyManagerFactoryPassword in…

… SslServerContext, ConfigKeys, RecorderConfiguration, and recorder-defaults.conf.

I'm not sure why PaceSpec keeps timing out during CI, could it be a latency issue?

Thanks! I'm off atm, I'll merge later this week.

PaceSpec fails because some tests (Akka testkit based) expect some timings and Travis hosts frequently experience pauses/slowdowns.

I asked the original reporter for more information. I'd like to be sure that having different password isn't a very rare usage.
Then, this new property should be exposed in the GUI. And we'd have to define rules, eg when left blank, we should maybe fall back to the current behavior.

I agree with you

This PR is broken and ships unrelated commits.
And we still don't know if this is useful for anyone.
Closing for now, will reopen if it makes sense.

authors: ggsjyoon slandelle


text:
added services section to the website

i added services section on the site.

#5 close this issue.

@karandeep4423 good work 👍.


text:
Deployment

#Deployment
##User Story
As a boot camp student,
I want the prework notes to be structured on a webpage,
So that I can easily find and read the information.
##Acceptance Criteria
GIVEN a Prework Study Guide website,
WHEN I visit the website using the URL,
THEN I can access my website from any browser

Deployed to github pages: https://gaylemcclure.github.io/prework-study-guide/

repo: gaylemcclure/prework-study-guide


text:
Refactor NodeHelper into inline extensions

Since we know the hierarchy we can add all our predicates and overrides directly into each Node subclass.
This makes for simpler, faster methods that should speed up node matching a bit too.
Also renames token to slightly clearer token_value.

cc @gazayas

Also renames token to slightly clearer token_value.

I'm fine with sticking with token_value for now, I'm not seeing anything in Prism that suggests that we should use anything else specific, but if anything comes up I'll open another PR! Thanks for this refactor!

authors: gazayas kaspth

repo: gazayas/masamune-ast


text:
ign -> gz Macro Migration : gz-fuel-tools

See: https://github.com/gazebo-tooling/release-tools/issues/737

@osrf-jenkins run tests please!

No new test failures

authors: chapulina methylDragon

repo: gazebosim/gz-fuel-tools


text:
Added Reset button to world_control

Signed-off-by: ahcorde ahcorde@gmail.com
🎉 New feature
Summary
Added a reset button to the world Control plugin

Test
gz sim rolling_shapes.sdf

Checklist

[ ] Signed all commits for DCO
[ ] Added tests
[ ] Added example and/or tutorial
[ ] Updated documentation (as needed)
[ ] Updated migration guide (as needed)
[ ] Consider updating Python bindings (if the library has them)
[ ] codecheck passed (See contributing)
[ ] All tests passed (See test coverage)
[ ] While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by messages.

A super pedantic nit:  Can we get a reset icon? :)

A super pedantic nit: Can we get a reset icon? :)

@mjcarroll I was thinking about adding an icon but I was trying to follow the same style which is an unicode geometric shape https://en.wikipedia.org/wiki/List_of_Unicode_characters. I'm open to suggestion.
Anyhow the way that I implemented the reset is more like a stop (reset + pause)

How about using the same icon as refresh in ImageDisplay? https://github.com/gazebosim/gz-gui/blob/a60cb7d61339b407ff3285ddbf16f618c4c4b3b9/src/plugins/image_display/ImageDisplay.qml#L63

How about using the same icon as refresh in ImageDisplay?
https://github.com/gazebosim/gz-gui/blob/a60cb7d61339b407ff3285ddbf16f618c4c4b3b9/src/plugins/image_display/ImageDisplay.qml#L63

nice! thank you @jennuine

Users may accidentally click this icon so another nice feature would be to have a confirmation dialog before resetting similar to https://github.com/gazebosim/gz-gui/pull/225 (with the ability to disable the dialog through the config)

@osrf-jenkins run tests please

It would be nice to also add the Ctrl+R shortcut, and then we can close

gazebosim/gz-sim#203

https://github.com/gazebosim/gz-gui/pull/476/commits/dbd8c74f31839dd4186bc074e2d0c30ed4748f1c

friendly ping @jennuine @mjcarroll

@jennuine
what do you think about this ?

@jennuine
what do you think about this ?

Looks great, thanks! How do you and @mjcarroll feel about the reset button being to the right of the step button? Reasons being:

Users are less likely to accidentally hit reset when attempting to pause
It keeps the old/previous layout the same while adding the new feature

@jennuine
what do you think about this ?

Looks great, thanks! How do you and @mjcarroll feel about the reset button being to the right of the step button? Reasons being:

Users are less likely to accidentally hit reset when attempting to pause (I know this is less likely but I can still see it happening)
It keeps the old/previous layout the same while adding the new feature

Anyhow when you click in the reset button a Dialog will appers to ensure that you want to reset the simulation. Not dangerous at all.

@jennuine
what do you think about this ?

Looks great, thanks! How do you and @mjcarroll feel about the reset button being to the right of the step button? Reasons being:

Users are less likely to accidentally hit reset when attempting to pause (I know this is less likely but I can still see it happening)
It keeps the old/previous layout the same while adding the new feature

Anyhow when you click in the reset button a Dialog will appers to ensure that you want to reset the simulation. Not dangerous at all.

changing layout doesn't seem to be working, the step botton uses a mouseclick area, it's tricky to change it

the step botton uses a mouseclick area, it's tricky to change it

If it is too difficult to fix, I think that the dialog confirmation is sufficiently safe.

@osrf-jenkins run tests please!

@osrf-jenkins run tests please!

@osrf-jenkins run tests please!

authors: ahcorde jennuine mjcarroll scpeters

repo: gazebosim/gz-gui


text:
Bullet-featherstone: Ellipse AABB returns invalid values on Focal

Environment

OS Version: Ubuntu 20.04 Focal
Source or binary build? Source build

Description

Expected behavior: The ellipse AABB common physics test passes (as it does with dartsim and on other Ubuntu versions)
Actual behavior: It does not

In the short term, the test is being disabled, with this as the tracking issue to resolve the test once the issue is discovered.
Output
The extents of the AABB on focal are incorrect:
 -0.24 -5.34 0.190018
  0.24 -4.66 7.71649e+29

Likely related to https://github.com/gazebosim/gz-sim/issues/1769

repo: gazebosim/gz-physics


text:
update rbgds to v.0.8.0

update binjgb
update rbgds to v.0.8.0
update hadware.inc
fixing searchbox

unfortunately autorun will not wok as (prolly becuase  AudioContext required but emulator need to be created after user input)
pust still it draws first frame

repo: gbdev/rgbds-live


text:
Orcid integration and contact "store"

When adding contacts for a new resource, it would be nice if you could just add the ORCID instead of retyping all contact coordinates. #nicetohave

Fully support alternative to enter the corresponding ORCID --instead-- of typing in contact coordinates.
And also great if we could simply add contact people AND contact institutions to one common list for all datasets - and for each dataset simply select the relevant person or institution.
And even better if these contact entities and contact coordinates where synchronized to the new GrSciColl/GrBio under development at the GBIF portal. Maybe also possible with integration against WikiData, etc...?
And also great if we ourselves could login to different IPT instances (that we are authorized to login to) using our ORCID!

#1563 same request if I see correctly

We will start implementing this as soon as I finish updating the EML. The metadata pages will change, there will be a new page for all contacts.

authors: DimEvil dagendresen mike-podolskiy90 mnhn-paul

repo: gbif/ipt


text:
Update COMMON_BUGS.md to fix typo

let (b, set_a) = create_signal(cx, false); // should be set_b

Thanks!

repo: gbj/leptos


text:
Empty string in remarks array when no remarks are put into panel

We get "remarks": [""], instead of "remarks": [],
After fixing, we should also check others for the empty remarks.

Fixed in Tile Deselect, Entity List Consolidation, and Various Fixes

authors: Diabolickal gc

repo: gc/citizens