Wrong PDF opened but download works

When I open a pdf file from the assets folder, the wrong pdf file is shown but the name of the pdf file is correct (e.g I open Note_1, Note_2 is shown but the name is Note_1). When I download this file with my reader, the correct file is downloaded and later shown.
class MainActivity : AppCompatActivity() {
private lateinit var noteViewModel: NoteViewModel

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val adapter = NoteAdapter()
    recycler_view.apply {
        layoutManager = LinearLayoutManager(this.context)
        recycler_view.setHasFixedSize(true)
        this.adapter = adapter
    }

    noteViewModel = ViewModelProvider(
        this,
        ViewModelProvider.AndroidViewModelFactory.getInstance(this.application)
    ).get(NoteViewModel::class.java)

    noteViewModel.getAllNotes().observe(this, Observer {
        adapter.submitList(it)
    })

    adapter.setOnItemClickListener(object : NoteAdapter.OnItemClickListener {
        override fun onItemClick(note: Note) {
            // Open PDF by name
            note.readFromAsset(baseContext)
        }
    })
 }
}

And here my Note class:
data class Note(var title: String, var description: String, var priority: Int, val pdfName: String) {
@PrimaryKey(autoGenerate = true)
 var id: Int = 0

fun readFromAsset(context: Context) {
    val intent = Intent(Intent.ACTION_VIEW, getUri())
        .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)

    context.startActivity(intent)
}

private fun getUri(): Uri? {
    val AUTHORITY = "com.example.viewpdfroom"
    val PROVIDER = Uri.parse("content://$AUTHORITY")

    return (PROVIDER
        .buildUpon()
        .appendPath(StreamProvider.getUriPrefix(AUTHORITY))
        .appendPath("assets/$pdfName")
        .build())
}
}

You can find the full code here: https://github.com/Berki2021/ViewPDFRoom

OK, I'll peek at this over the weekend.

OK, this is very strange. AFAICT, my code is doing the right thing. I am creating the right asset path and am passing it to openFd() on Android's AssetManager. Inexplicably, it appears as though I am getting an AssetFileDescriptor on the wrong content returned to me.
What is even stranger is that I am only getting that result from Google Drive's PDF viewer. On the same device, Adobe Reader works fine. And I can't see what I am doing differently — it appears as though both apps are going through the same code paths in StreamProvider. So, this is going to take some time to track down what's going on.
What PDF viewer are you using?

Note that your sample project crashes. baseContext is rarely used in Android app development; do not use it to start an activity. I changed line 38 of MainActivity.kt to note.readPDFFromAsset(this@MainActivity).
Another problem is your Uri assembly. Use:
provider
            .buildUpon()
            .appendPath(StreamProvider.getUriPrefix(authority))
            .appendPath("assets")
            .appendPath(pdfName)
            .build()

Otherwise, you wind up encoding the / in assets/$pdfName.
Neither of these should impact the problem — I can reproduce it with Drive after making these changes. I'm just mentioning them, since I encountered them while trying this out.

Okay, this is really weird. I've changed my code as you said and nothing changed (obviously).
Now comes the weird part: I've used Googles PDF viewer as well and got the same error as yours (it opened the wrong pdf file). After that, I've changed my code to this to test it better:
fun readPDFFromAsset(context: Context) {
    val intent = Intent(Intent.ACTION_VIEW, getUri())
        .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)

    context.startActivity(Intent.createChooser(intent, "Open with"))
}

The weird part is, that this problem only appears when using the built-in google drive pdf viewer!!!
The following programs work perfectly:

Word
onedrive pdf-viewer
hp pdf print service
adobe acrobat reader
foxit pdf reader
pdf reader for android (reader tools) => would'nt use it, full of ads..
pdf reader for android 2020 (iVilia Studio) => would'nt use it, full of ads..

The following programs don't work properly:

easy pdf-reader (rizwan chaudhary) => "Error when loading the pdf file"
google pdf viewer and google drive pdf viewer (note that those are not the same!)

Is there a proper way to enforce the user to use a pdf reader other than googles pdf reader? I think nearly every android device has the onedrive pdf reader?
I will try to find a solution as well, but this is really really weird...

In terms of your failure cases, the non-Google ones may just be bugs in the PDF viewer. For example, the "File not found" one probably is just grabbing the path from the Uri and trying to open a file using it, pretending that all Uri values have file schemes. If you are in position to try opening a PDF attachment from an email in those apps, it would be interesting to see which of those failure cases still fail (clearly bug) and which now work (suggesting that limitations intrinsic to the asset as a data source is what's tripping them up).
From a compatibility standpoint, there is little question that copying the asset to a file, then using FileProvider to serve it, will be better than StreamProvider. Assets, being entries in a ZIP-style archive, are a bit less flexible than are simple files. The downside of the copy-asset-to-file approach is the extra disk space that it consumes.
In terms of what the Google viewers are doing, I have absolutely no explanation for that behavior.

Is there a proper way to enforce the user to use a pdf reader other than googles pdf reader

Not really. The closest thing that you could do would be to use queryIntentActivities() on PackageManager to find everything that supports startActivity() for your Intent. You would filter the resulting list, throwing out known problematic apps, then present your own UI to ask the user to choose a PDF viewer among the remainder. You would then craft an explicit Intent, identifying that particular activity plus having the rest of your existing Intent contents, and use that for startActivity(), to drive straight to the chosen activity. IOW, you do the same sort of stuff that a launcher does when presenting a list of MAIN/LAUNCHERactivities to the user, just for yourIntentinstead of the launcherIntent`.

I think nearly every android device has the onedrive pdf reader?

Other than a few Samsung models, I never see that app pre-installed.

but this is really weird...

I am going to try to budget time to write a separate AssetProvider that just handles the serve-assets scenario.

If you are in position to try opening a PDF attachment from an email in those apps, it would be interesting to see which of those failure cases still fail (clearly bug) and which now work (suggesting that limitations intrinsic to the asset as a data source is what's tripping them up).

I've taken the chance to test the above written case and came to following conclusion (I've sent several pdfs from one email to another using gmail and opening the files from the gmail client):
These work fine:

Word
onedrive pdf viewer
hp pdf print service
adobe acrobat reader
foxit pdf reader
pdf reader for android
easy pdf-reader (rizwan chaudhary) => didn't work before
pdf reader (librera) => didn't work before, but it recognized the pdf file as a word file

These do not work:

pdf reader (pfr inc) => "this file manager doesn't allow opening files with third app" (that's literally the worst app I've ever downloaded... I don't get why it has a million downloads)
pdf viewer (tapi llc) => "Application error: An unexpected error has occurred: Format specifier '%1$s'
pdf reader for android 2020 (iVilia Studio) => didn't open anything, worked before

So in this case, 3 out of 10 didn't work and are maybe just bad written?

I am going to try to budget time to write a separate AssetProvider that just handles the serve-assets scenario.

That's really kind, thank you very much! Even tho it would serve for a small part of my further application, it is at least one of the most important ones. Our customers need quick access to some of our pdf files... (we are a small business, and I am just a student) If you need any help, just contact me! I may be not the best programmer, but I am stubborn 😄
The other option would be to transfer the pdf files from the asset folder to the internal storage after downloading the app and read the files from there. Not the perfect solution, but it serves the purpose of just reading pdf files... (if it is even possible due to security concerns)
I hope I don't have the same pain when programming the app in ios / swift 😞

These do not work

They probably do not handle content Uri values well. That's surprising, since it is 2020 and file Uri values have been being phased out for nearly four years. Gmail, for example, has been using them for at least that long. So those apps have been limited for quite some time, and there isn't a whole lot you can do about that.

The other option would be to transfer the pdf files from the asset folder to the internal storage after downloading the app and read the files from there. Not the perfect solution, but it serves the purpose of just reading pdf files... (if it is even possible due to security concerns)

Be careful about terminology. My guess is that when you wrote "internal storage" you really mean what the Android SDK calls external storage and not what the Android SDK refers to as internal storage. Unfortunately, Google uses different terms for the SDK's external storage, calling it "internal storage" when talking to users. :man_facepalming:
Copying the assets to the SDK's internal storage is easy. You would use FileProvider to make the PDF available. This sample Java app from one of my books demonstrates the whole process. However, your three failing PDF viewers will still fail, in all likelihood.
Copying the assets to the SDK's external storage is a slightly bigger hassle. If you use getExternalFilesDir() on Context to get the directory to write to, you're fine, but the directory is not the most user-friendly location (Android/your.application.id/files/) and the PDFs would be removed when your app is uninstalled. Given some restrictions for writing elsewhere on external storage introduced in Android 10, the Storage Access Framework (ACTION_CREATE_DOCUMENT) would be your most likely alternative, allowing the user to choose where to place the content. In either case, the users wind up with independent access to the PDFs and can open them using whatever app they choose.

Be careful about terminology. My guess is that when you wrote "internal storage" you really mean what the Android SDK calls external storage and not what the Android SDK refers to as internal storage

Wait, I still don't got it. So lets say we have a phone, which has an internal storage of 128 gb and can extend its storage with a 64 gb sd card.

Copying the assets to the SDK's internal storage is easy.

Which of the above given example is the "internal storage" now? The 128 gb yes? So when google says "external storage" they mean the "internal storage" and not the sd card? So I could just copy my pdf files from the assets folder to the 128 gb "internal storage" and everything should work properly?

However, your three failing PDF viewers will still fail, in all likelihood.

Yeah I have to say, if one of my users use one of these pdf viewers, all hope is lost for them and I would just refer them to use adobe acrobat like everyone else does...

Copying the assets to the SDK's external storage is a slightly bigger hassle.

This would mean the 64 gb sd card? If it refers to the 128 gb storage, do I have to do this in order to open a pdf?

So lets say we have a phone, which has an internal storage of 128 gb and can extend its storage with a 64 gb sd card.

From a space standpoint, that is both what the SDK refers to as "internal storage" and "external storage" — those are simply separate directory structures with separate access privileges.

Which of the above given example is the "internal storage" now?

I recommend that you read the blog posts that I linked to on what internal storage and external storage mean, from the standpoint of the Android SDK. Roughly speaking, if the user can see it when plugging in a USB cable, it is external storage.

So when google says "external storage" they mean the "internal storage" and not the sd card?

When the Android SDK documentation refers to "external storage", it refers to what the user will see often labeled as "internal storage" when plugging in a USB cable.

So I could just copy my pdf files from the assets folder to the 128 gb "internal storage" and everything should work properly?

That will depend a ton on what "work properly" means. Your app's ability to launch a PDF viewer will not dramatically improve (the three broken apps will still be broken). However, the user also has direct access to those PDFs and may have other options for getting them to her favorite PDF viewer. For example, those broken PDF apps might have a built in "open a PDF" option that will work better. The user will also be able to copy the PDFs to her desktop, if desired.

This would mean the 64 gb sd card?

I term SD cards removable storage. Google's docs, and their SDK support for SD cards, is a mess.

However, the user also has direct access to those PDFs and may have other options for getting them to her favorite PDF viewer.

My user is really tech-savvy so the ability to directly access those PDF files would not enhance nor worsen my current situation 😄

I recommend that you read the blog posts that I linked to on what internal storage and external storage mean

I will!
But I still don't get this point: Why does google not provide the ability to directly access pdf/etc files from the asset folder and start and intent??? (other than with the usage of external libraries) I mean, someone could have thought about it before, couldn't they?

Why does google not provide the ability to directly access pdf/etc files from the asset folder and start and intent?

I imagine that they believe the purpose of assets is for internal use within the app. Google probably expects apps that want to get PDFs to users will do so by downloading those PDFs from a server, or maybe generating the PDFs in the app itself.
Personally, I have always viewed this view-a-PDF-asset capability as being primarily for app documentation. For your scenario ("Our customers need quick access to some of our pdf files"), I would lean towards downloading the PDFs from a server, rather than packaging them into the app itself. Do not have Google be a bottleneck, and Google's Play Store approval process for updates sometimes has problems. Telling your customers "sorry, we cannot get you the updated PDFs, because Google is being mean to us" is not going to make you popular. There are situations where I can see where packaging PDFs in an app might be worthwhile (e.g., the app primarily is used offline), but for ordinary apps, it is not the route that I would take.

Hmm, okay, thank you. I have several questions when downloading the pdf file and viewing it, it would be amazing if you could answer those questions and maybe provide examples (I could not find any 😞)
Question 1: How do I make sure, that when the user clicks the button and downloads the pdf file, that the pdf file is not downloaded again when the user clicks the button again. Instead of that the button should open the pdf now. I am looking for something like
If (pdf.alreadyExists()) {     openPdf() } else {    downloadPDF() }
Question 2: Lets say, I've updated the pdf file and uploaded it to my server. How do I make sure, that when the user, who already downloaded the pdf file, clicks the button, the new pdf file will be downloaded and viewed? And in addition, the old pdf file should be deleted. I am looking for something like:
If(pdf.alreadyExists() && pdf.isNew() {     openPDF()     deleteOldPDF() } else {    downloadPdf() }
I imagine that all of these could work with firebase? What do you think of firebase, would you use it? I want to write a shop as well and I have security concers writing my own server backend..

Question 1

The details will depend on where you are downloading the PDF to (internal storage? external storage that you can use with filesystem APIs like getExternalFilesDir()? ACTION_OPEN_DOCUMENT_TREE?).

Question 2

The details will depend on where you are downloading the PDF to, how you are downloading it, and how your app will find out about new PDF versions. So, for example, using a REST-style Web service is very different than is pulling the latest from a cloned Git repo.

What do you think of firebase, would you use it?

I try to minimize my use of commercial Google services, but that's just me.
At this point, though, the discussion has gone way beyond the scope of an issue on this library. If you have further concerns in this area, there are many resources available to you, including:

Stack Overflow and other public discussion sites such as those that I list at https://commonsware.com/andglobe
Semi-private areas, such as the Android United Slack workspace
Subscribers to my Warescription can join office hours chats and ask for posting privileges on a discussion board.

I am going to leave this issue open, in case I stumble upon what it is that the Google PDF viewers are doing.

Thank you very much for all the help you provided!


Update homework.sh

What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports
Answering questions from homework
What did you learn from the changes you have made?
Deeper understanding of bash
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
Google bash syntax
How were these changes tested?
On local terminal
A reference to a related issue in your repository (if applicable)
@mentions of the person or team responsible for reviewing proposed changes (At least 2 people)

@dtxe
@michaeladrouillard

Checklist

[x] I can confirm that my changes are working as intended

Hi there, glad to see you have began so early and soon on your assignment! That being said, you have unfortunately made a pull request to the wrong repo. You shouldn't be making a pull request to uoft-dsi/shell, but rather your own forked shell repo.
Please read the instructions on your assignment (Submission Information) more carefully (specifically the Assignment Submission Guide)

Hi Daniel, thanks for letting me know about this.  I have just created
another change request in my own repo.  It is
https://github.com/gwmchung/shell/pull/1
Can you please confirm if that was okay?  Thanks!
Gloria
On Thu, Apr 25, 2024 at 3:28 PM Daniel Razavi @.***>
wrote:

Hi there, glad to see you have began so early and soon on your assignment!
That being said, you have unfortunately made a pull request to the wrong
repo. You shouldn't be making a pull request to uoft-dsi/shell, but rather
your own forked shell repo.
Please read the instructions on your assignment (Submission Information)
https://github.com/UofT-DSI/shell/blob/main/02_assignments/assignment.md#submission-information
more carefully (specifically the Assignment Submission Guide
https://github.com/UofT-DSI/onboarding/blob/main/onboarding_documents/submissions.md
)
—
Reply to this email directly, view it on GitHub
https://github.com/UofT-DSI/shell/pull/45#issuecomment-2078028675, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/BH25LRCWESINRXFWUBXGKATY7FKPNAVCNFSM6AAAAABGXS3VKWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANZYGAZDQNRXGU
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Gloria Chung


Using k8s-keystone-auth with OpenStack Application Credentials

Is this a BUG REPORT or FEATURE REQUEST?:
/kind feature
What happened:
The k8s-keystone-auth component requires some values to be set from the user in the OS env.
What you expected to happen:
It should be very useful in order to simplify the user experience adding support also to the Application Credentials (https://docs.openstack.org/keystone/queens/user/application_credentials.html) OpenStack authentication.
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:

openstack-cloud-controller-manager version:
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

@zioproto @Fedosin @lingxiankong @dims @attardi

I'm not sure it's a valid feature request to cloud-provider-openstack. Actually, although you are using OS env variables when using kubectl, what the k8s api service receives is keystone token, also send the token to k8s-keystone-auth service. Both k8s and k8s-keystone-auth don't care about how the token is generated(either using the traditional way or using application credentials)

@lingxiankong this could be for the credentials present in the cloud.conf, not the one passed in by a user

Still not sure i fully understand the feature request. The k8s-keystone-auth just needs the keystone service URL, it doesn't use cloud.conf or user ENV.

ah sorry, i mis-understood. let's wait for clarification

@RdL87 can you provide an example configuration for an Openstack client using Application Credentials ?

@RdL87 that's why I said this feature request has nothing to do with k8s-keystone-auth service, you need to propose the PR to kubectl

Are they likely to accept any changes now that external auth plugins are a thing? https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins
If not, maybe cloud-provider-openstack should host a plugin?

we do have one - https://github.com/kubernetes/cloud-provider-openstack/pull/126/commits

@lingxiankong  This does not require a change to kubectl. kubectl invokes the kube API authentication, which will pass it to the webhook (in our case invoking the k8s-authentication-auth service), passing it the token present in the  .kube/config file. See how Guard does it with other Authenticators:
https://appscode.com/products/guard/0.2.1/guides/

There are pictures clearly illustrating the architecture, for example in:
https://appscode.com/products/guard/0.2.1/guides/authenticator/github/

However, because we already have client-keystone-auth in this repo, i think we could implement this feature there.

@lingxiankong +1

@lingxiankong tell me how i could be helpful for this purpose.
@zioproto i'll do asap

@zioproto I need to setu up a Queens O~S deployment before trying it since it is supported only starting from that version.

You do not need Queens, but you need version > 3.15 of python-keystoneclient, from https://github.com/openstack/python-keystoneclient.git):

from keystoneauth1.identity import v3
from keystoneauth1 import session
from keystoneclient.v3 import client
auth = v3.Password(auth_url=AUTH_URL,
username=USERNAME,
user_domain_name=USER_DOMAIN_NAME,
password=PASSWD,
project_name=PROJECT,
project_domain_name=PROJECT_DOMAIN_NAME)
sess = session.Session(auth=auth)
keystone = client.Client(session=sess)
app_cred = keystone.application_credentials.create(
name='kubernetes').to_dict()
from pprint import pprint
pprint(app_cred)
{u'description': None,
u'expires_at': None,
u'id': u'25ddda21938d4a34873fe93a8772430d',
u'links': {u'self': u'https://keystone-staging.cloud.garr.it:5000/v3/users/6472b10817ac41369993fa59709992a5/application_credentials/25ddda21938d4a34873fe93a8772430d'},
u'name': u'k8s',
u'project_id': u'ceb24e8ffaf14110a40956ef0028196b',
u'roles': [{u'domain_id': None,
u'id': u'f3e6d744b88e4b56a1c56bc15581f1c4',
u'name': u'Member'},
{u'domain_id': None,
u'id': u'ce72aae022d24301a38b0894584066e1',
u'name': u'Admin'}],
u'secret': u'0CRvHIRDhi-dJGfuGevaBsX9_s6i0BA2txIpmW3Ks0Avf9IuIAZQ9Ln9vbZPtUj7pEPZ0RCyvHrvjXMMMXjAww',
u'unrestricted': False}
token = app_cred['secret']

Application Credentials can be obtained from the dashboard through this completed Blueprint, upcoming in Rocky,
https://blueprints.launchpad.net/horizon/+spec/application-credentials

PR to have gophercloud supporting application credentials to authenticate is here https://github.com/gophercloud/gophercloud/pull/1224
What is the most elegant way to build the client-keystone-auth against the patched version of gophercloud to test it ?

@zioproto In your own environment, you can specify the branch name in the 'constraint' in Gopkg.toml, then run 'dep ensure'

@lingxiankong the problem is that the code goes into vendor/github.com/zioproto/ instead of vendor/github.com/gophercloud/ and this breaks the build.

@zioproto I'm not sure if the way bellow works but I remember I did the similar thing before. Go to gophercloud folder in the vendor directory, add your own repo as remote (git remote add xxx xxx), fetch and checkout into your branch.

I found the solution thanks to Dims! I patched the Gopkg.toml with this:
[[constraint]]
  name = "github.com/gophercloud/gophercloud"
  branch = "application_credential"
  source = "https://github.com/zioproto/gophercloud"


1.2.1 breaks the build with: unresolved reference: detekt

Expected Behavior
I have a project using detekt 1.2.0:
https://github.com/jcornaz/kwik/tree/3ba15e2fd54228ae5214f45b39a5977a1af14b7e
I would like to update detekt to version 1.2.1. Since it is a patch I expect the update to be possible without any failure.
Observed Behavior
If I update detekt version to 1.2.1 the build breaks with the following message:
Script compilation errors:

  Line 06: import io.gitlab.arturbosch.detekt.detekt
                                              ^ Unresolved reference: detekt

  Line 72:     detekt {
               ^ Unresolved reference: detekt

  Line 73:         input = files(
                   ^ Unresolved reference: input

  Line 77:         buildUponDefaultConfig = true
                   ^ Unresolved reference: buildUponDefaultConfig

  Line 78:         config = files("$rootDir/detekt-config.yml")
                   ^ Unresolved reference: config

Steps to Reproduce
Setup working version:
git clone git@github.com:jcornaz/kwik.git
cd kwik
git checkout 3ba15e2fd54228ae5214f45b39a5977a1af14b7e
./gradlew detekt # Observe success

Then in line 15 of build.gradle.kts replace 1.2.0 by 1.2.1.
Finally, observe the problem:
./gradlew detekt

Context
I want to update detekt from version 1.2.0 to 1.2.1.
Your Environment

Version of detekt used: 1.2.1
Version of Gradle used: 6.0.1
Operating System and version: Linux version 5.3.12-1-MANJARO
Link to your project: https://github.com/jcornaz/kwik

Looking at your build file you should be able to remove import io.gitlab.arturbosch.detekt.detekt and get it working again. Sorry about that, we should have had a deprecation message where that extension was being used.
You'll also need to change config = files("$rootDir/detekt-config.yml") to config.setFrom( files("$rootDir/detekt-config.yml")). This one should have triggered a deprecation warning in 1.2.0 for direct usage of config =. If it didn't can you please advise?

@3flex
Thanks for your support.
However, I couldn't get it working again. You can find a version with the changes you told me to do at the  commit: d9c6c919675ac729658dfebbc73ad6c011f4b4c2 of the project.

This one should have triggered a deprecation warning in 1.2.0 for direct usage of config =

No, I confirm I don't see any warning if I call config = with detekt: 1.2.0. (Absence of warning is observable at commit 92ea258094e577de6adccefcfe91f35a6d0fdc54 of the project.

I can also confirm I don't see any warning if I use config = with detekt: 1.2.1.

@jcornaz I've worked out what the issue is. 1.2.1 removed this Gradle extension: https://github.com/arturbosch/detekt/blob/1.2.0/detekt-gradle-plugin/src/main/kotlin/io/gitlab/arturbosch/detekt/KotlinExtension.kt
It was there to allow the type-safe accessors to work in Gradle Kotlin DSL, which is why removing it causes failures in the build when type-safe accessors are not available.
I see two options:

Add the extension back to the plugin with a deprecation warning, advising that there's a misconfiguration in the build file and linking to https://docs.gradle.org/current/userguide/kotlin_dsl.html
Describe how the Gradle build files should be corrected (an easy way is to remove apply false against detekt in the plugins block - not strictly correct if you don't want to apply the plugin to the root project, but it restores type-safe accessors. Other options are to apply the plugin in individual module build files or use the standard API)

It probably does no harm to leave the extension in place, though it's not documented in the Gradle Kotlin DSL primer so it's probably not a supported workaround. Adding back with a deprecation message seems the best option. I'll open a PR.

I can also confirm I don't see any warning if I use config = with detekt: 1.2.1.

@1951FDG @jcornaz my mistake, the deprecation wasn't on config in the extension, but in the tasks. It doesn't affect the detekt {} block.


feat: Add a version number to gossip messages

Motivation
Fixes https://github.com/farcasterxyz/hub/issues/166
Change Summary
Adds a version number to gossip message types to allow forwards compatibility.
Also, removed some unnecessary promise return values for sync methods in the RPCHandler.
Merge Checklist

[x] The title of this PR adheres to the conventional commits standard
[x] The PR has been tagged with the appropriate change type label(s) (i.e. documentation, feature, bugfix, or chore)
[ ] Changes to the protocol specification have been merged

Hmm, looks like unrelated flaky tests. And I don't have permissions to re-run. Will change the commit hash to trigger CI.

Handled in https://github.com/farcasterxyz/hub/pull/247


Use Convergence tool

As a Develop/Tester
I need to use the coverage tool to measure your test coverage
So that the coverage is of at least 95% and quality of the product is ensured.
Acceptance Criteria
95% test coverage is achieved.

Please add your planning poker estimate with Zenhub @AltriaPD

Hey team! Please add your planning poker estimate with Zenhub @DaiMingNJ @qz2570


add module to things built with immer section

Coverage remained the same at 96.216% when pulling 120a459783a520f9d0e2bc2a0b65962f578e58ac on jeffreyyoung:patch-1 into 77c17f7b7644d47d9f643f542a98bc682cccca02 on mweststrate:master.


feat: Learning JSON RPC with ETH #421

Looks good to me! learned about this through real life examples.


Nim not available as an option on https://ide.judge0.com

Hello,
I was just going to try out the Emacs support on https://ide.judge0.com/, when I realized that Nim is one of the options in the langauge dropdown there.
The only way to access Nim Playground is by going to it subdomain: https://nim.ide.judge0.com/.
Is there a limitation that prevents Nim Playground from being accessed from https://ide.judge0.com/ as well?

Currently the only limitation is that Nim is not a part of official Judge0 API, but rather there exists a special release of Judge0 API that includes just Nim.
As a first step I can add Nim as an option to Judge0 IDE, but it will use API from https://nim.api.judge0.com instead of https://api.judge0.com.
I can then redirect https://nim.ide.judge0.com to https://ide.judge0.com.

Hi @kaushalmodi,
Nim is now available on Judge0 IDE (https://ide.judge0.com). Old site is still available at https://old.nim.ide.judge0.com but https://nim.ide.judge0.com redirects to Judge0 IDE.

Thanks for this quick followup!


[Loc] sql-migration update

This PR fixes #

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.001%) to 42.417%

Totals

Change from base Build<PHONE_NUMBER>:
0.001%

Covered Lines:
29243

Relevant Lines:
64159

💛  - Coveralls


E2E test(s) to verify that permanent and retryable errors are handled correctly.

We should add an E2E test that ensures that we handle different exit codes of the master correctly.
This would prevent issues like #28.

area/testing

/area testing

/priority p1

/remove-priority 1
/priority 2

/remove-priority p1
/priority p2


Outdated images on docker

Images in repo and on Docker hub seems outdated.
Your change history for Makefile suggests images are not updated on hub.

thanks, but we haven't officially made this repo public yet. please give us time.


Access for terraform_ngic_deployment.git

Hi, Where can we access the terraform_ngic_deployment for opensource? In the /omec-project/deployment it is mentioned as below:
Make sure network access to "ilpm.intel-research.net" server is available.
Make sure user account for package repository is created.
Download the package using following commands:

cd /opt/
git clone<EMAIL_ADDRESS>But for open source community, we don't have access. Please suggest.

i Believe the readme is not update to date. It is referencing to older location where this project was being hosted before it was open sourced. you should be cloning this project itself for deployment code.
git clone https://github.com/omec-project/deployment.git

thanks for the clarification.

Will check the latest README change.


Compare State Dicts Helper Function

Overview
Proposed up-streaming of helper function that takes in 2 state dicts and prints which keys are missing from another.
Very useful when implementing an existing model (like StableDiffusion) for inference to check for weight key mismatching.
Testing
Note: only the keys are used by the function, accepts full state dict for easier calling. This function was also properly tested with a full model and weights file.
>>> compare_state_dicts({"proj_in.weight":0,"proj_in.bias":0}, {"proj_in.weight":0,"proj_in.bias":0})
Both state dicts contain the same keys

>>> compare_state_dicts({"proj_in.weight":0,"proj_in.bias":0,"sigmas":0}, {"proj_in.weight":0,"proj_in.bias":0})

Model Only:
sigmas

>>> compare_state_dicts({"proj_in.weight":0,"proj_in.bias":0}, {"proj_in.weight":0,"proj_in.bias":0,"pos_ids":0,"tok_ids":0})

Weights Only:
pos_ids
tok_ids

>>> compare_state_dicts({"proj_in.weight":0,"proj_in.bias":0,"sigmas":0}, {"proj_in.weight":0,"proj_in.bias":0,"pos_ids":0,"tok_ids":0})

Model Only:
sigmas

Weights Only:
pos_ids
tok_ids

Generally we only add API to nn after it's used several times in examples, or if there's a matched API in torch that people use a lot. There's a cost to maintain these API

Generally we only add API to nn after it's used several times in examples, or if there's a matched API in torch that people use a lot. There's a cost to maintain these API

Fair enough, thought I would offer in case it was wanted, will decline PR.


[BUG]CRC start hanging / looping at: DEBU SSH cmd err, output: exit status 255

General information

OS: macOS Catalina
Hypervisor: hyperkit (hyperkit: v0.20190802-4-g97f091) - installed by Docker Desktop
Did you run crc setup before starting it (Yes/No)? Yes, successfully

CRC version:
OpenShift version: 4.2.13 (embedded in binary)

CRC status - haven't got far enough?
ERRO error: stat /Users/syang/.crc/machines/crc/kubeconfig: no such file or directory
 - exit status 1

CRC config
empty

Host Operating System
# Put the output of `cat /etc/os-release` in case of Linux
# put the output of `sw_vers` in case of Mac
# Put the output of `systeminfo` in case of Windows

Steps to reproduce

downloaded the package
run crc setup successfully
run crc start -p crc/pull-secret --log-level debug it hung

Expected
CRC starts successfully
Actual
hanging ...
Logs
Shilis-new-mac:~ syang$ crc start -p crc/pull-secret --log-level debug
DEBU No new version available. The latest version is 1.4.0
INFO Checking if oc binary is cached
DEBU oc binary already cached
INFO Checking if running as non-root
INFO Checking if HyperKit is installed
DEBU Checking if hyperkit is installed
INFO Checking if crc-driver-hyperkit is installed
DEBU Checking if crc-driver-hyperkit is installed
DEBU crc-driver-hyperkit is already installed in /Users/syang/.crc/bin/crc-driver-hyperkit
INFO Checking file permissions for /etc/resolver/testing
INFO Checking file permissions for /etc/hosts
Checking file: /Users/syang/.crc/machines/crc/.crc-exist
INFO Loading bundle: crc_hyperkit_4.2.13.crcbundle ...
INFO Creating CodeReady Containers VM for OpenShift 4.2.13...
Found binary path at /Users/syang/.crc/bin/crc-driver-hyperkit
Launching plugin server for driver hyperkit
Plugin server listening at address <IP_ADDRESS>:49953
() Calling .GetVersion
Using API Version  1
() Calling .SetConfigRaw
() Calling .GetMachineName
(crc) Calling .GetMachineName
(crc) Calling .DriverName
Running pre-create checks...
(crc) Calling .PreCreateCheck
(crc) DBG | exe=/Users/syang/.crc/bin/crc-driver-hyperkit uid=0
(crc) Calling .GetConfigRaw
Creating machine...
(crc) Calling .Create
(crc) DBG | exe=/Users/syang/.crc/bin/crc-driver-hyperkit uid=0
(crc) Downloading /Users/syang/.crc/cache/crc.disk from file:///Users/syang/.crc/cache/crc_hyperkit_4.2.13/crc.qcow2...
(crc) DBG | exe=/Users/syang/.crc/bin/crc-driver-hyperkit uid=0
(crc) DBG | clean start, hyperkit pid file doesn't exist: /Users/syang/.crc/machines/crc/hyperkit.pid
(crc) DBG | Using hyperkit binary from /Users/syang/.crc/bin/hyperkit
(crc) DBG | Using UUID c3d68012-0208-11ea-9fd7-f2189899ab08
(crc) DBG | Generated MAC e:f0:e3:c7:4f:be
(crc) DBG | Starting with cmdline: BOOT_IMAGE=/ostree/rhcos-25a0a0143a04cbc9bcd5ca239bdd0ae765451d28dc2929b80b7a0a41d0686b96/vmlinuz-4.18.0-147.3.1.el8_1.x86_64 console=tty0 console=ttyS0,115200n8 rootflags=defaults,prjquota rw root=UUID=477c3d77-20c6-4ff3-8bb3-dc2543eedfbd ostree=/ostree/boot.0/rhcos/25a0a0143a04cbc9bcd5ca239bdd0ae765451d28dc2929b80b7a0a41d0686b96/0 coreos.oem.id=qemu ignition.platform.id=qemu
(crc) DBG | Trying to execute /Users/syang/.crc/bin/hyperkit -A -u -F /Users/syang/.crc/machines/crc/hyperkit.pid -c 4 -m 8192M -s 0:0,hostbridge -s 31,lpc -s 1:0,virtio-net -U c3d68012-0208-11ea-9fd7-f2189899ab08 -s 2:0,virtio-blk,file:///Users/syang/.crc/machines/crc/crc.disk,format=qcow -s 3,virtio-rnd -l com1,autopty=/Users/syang/.crc/machines/crc/tty,log=/Users/syang/.crc/machines/crc/console-ring -f kexec,/Users/syang/.crc/cache/crc_hyperkit_4.2.13/vmlinuz-4.18.0-147.3.1.el8_1.x86_64,/Users/syang/.crc/cache/crc_hyperkit_4.2.13/initramfs-4.18.0-147.3.1.el8_1.x86_64.img,earlyprintk=serial BOOT_IMAGE=/ostree/rhcos-25a0a0143a04cbc9bcd5ca239bdd0ae765451d28dc2929b80b7a0a41d0686b96/vmlinuz-4.18.0-147.3.1.el8_1.x86_64 console=tty0 console=ttyS0,115200n8 rootflags=defaults,prjquota rw root=UUID=477c3d77-20c6-4ff3-8bb3-dc2543eedfbd ostree=/ostree/boot.0/rhcos/25a0a0143a04cbc9bcd5ca239bdd0ae765451d28dc2929b80b7a0a41d0686b96/0 coreos.oem.id=qemu ignition.platform.id=qemu
(crc) DBG | exe=/Users/syang/.crc/bin/crc-driver-hyperkit uid=0
(crc) DBG | hyperkit pid from json: 1496
(crc) DBG | Searching for e:f0:e3:c7:4f:be in /var/db/dhcpd_leases ...
(crc) DBG | Found 1 entries in /var/db/dhcpd_leases!
(crc) DBG | dhcp entry: {Name:crc-k4zmd-master-0 IPAddress:<IP_ADDRESS> HWAddress:e:f0:e3:c7:4f:be ID:1,e:f0:e3:c7:4f:be Lease:0x5e34904e}
(crc) DBG | Found match: e:f0:e3:c7:4f:be
(crc) DBG | IP: <IP_ADDRESS>
(crc) Calling .GetConfigRaw
(crc) Calling .DriverName
(crc) Calling .DriverName
Waiting for machine to be running, this may take a few minutes...
(crc) Calling .GetState
(crc) DBG | exe=/Users/syang/.crc/bin/crc-driver-hyperkit uid=0
(crc) DBG | hyperkit pid from json: 1496
Machine is up and running!
Machine successfully created
Created /Users/syang/.crc/machines/crc/.crc-exist
(crc) Calling .GetState
(crc) DBG | exe=/Users/syang/.crc/bin/crc-driver-hyperkit uid=0
(crc) DBG | hyperkit pid from json: 1496
Found binary path at /Users/syang/.crc/bin/crc-driver-hyperkit
Launching plugin server for driver hyperkit
Plugin server listening at address <IP_ADDRESS>:49957
() Calling .GetVersion
Using API Version  1
() Calling .SetConfigRaw
() Calling .GetMachineName
DEBU Waiting until ssh is available
(crc) Calling .GetSSHHostname
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: external
Using SSH private key: /Users/syang/.crc/cache/crc_hyperkit_4.2.13/id_rsa_crc (-r--------)
&{[-F /dev/null -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none -o LogLevel=quiet -o PasswordAuthentication=no -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null<EMAIL_ADDRESS>-o IdentitiesOnly=yes -i /Users/syang/.crc/cache/crc_hyperkit_4.2.13/id_rsa_crc -p 22] /usr/bin/ssh }
DEBU About to run SSH command:
exit 0
DEBU SSH cmd err, output: exit status 255:
DEBU error: Temporary Error: ssh command error:
command : exit 0
err     : exit status 255
output  :  - sleeping 1s
DEBU retry loop 1
(crc) Calling .GetSSHHostname
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: external
Using SSH private key: /Users/syang/.crc/cache/crc_hyperkit_4.2.13/id_rsa_crc (-r--------)
&{[-F /dev/null -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none -o LogLevel=quiet -o PasswordAuthentication=no -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null<EMAIL_ADDRESS>-o IdentitiesOnly=yes -i /Users/syang/.crc/cache/crc_hyperkit_4.2.13/id_rsa_crc -p 22] /usr/bin/ssh }
DEBU About to run SSH command:
exit 0
DEBU SSH cmd err, output: exit status 255:
DEBU error: Temporary Error: ssh command error:
command : exit 0
err     : exit status 255
output  :  - sleeping 1s
DEBU retry loop 2
(crc) Calling .GetSSHHostname
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: external
Using SSH private key: /Users/syang/.crc/cache/crc_hyperkit_4.2.13/id_rsa_crc (-r--------)
&{[-F /dev/null -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none -o LogLevel=quiet -o PasswordAuthentication=no -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null<EMAIL_ADDRESS>-o IdentitiesOnly=yes -i /Users/syang/.crc/cache/crc_hyperkit_4.2.13/id_rsa_crc -p 22] /usr/bin/ssh }

I can see my hyperkit (/usr/local/bin/hyperkit) is slightly newer than that comes with crc, and copied it over, didn't seem to help ... Could you advise what to do next?

I would advise against using a hyperkit binary which is not the one shipped with crc, can you remove ~/.crc/bin/hyperkit and run crc setup again? When you see this ssh loop, is there an hyperkit process running? (ps aux |grep -i hyperkit)

Thanks very much for looking in to it @cfergeau .
Following your suggestion, I did crc delete and rm -rf ~/.crc and started from scratch (crc setup) with 1.5.0. It's stuck in the same place with ssh. The hyperkit is running, however, I can't get to the IP.

Shilis-new-mac:.crc syang$ ps -eaf | grep -i hyper
  501   965   950   0 Fri11am ??        19:09.80 com.docker.hyperkit -A -u -F vms/0/hyperkit.pid -c 6 -m 2048M -s 0:0,hostbridge -s 31,lpc -s 1:0,virtio-vpnkit,path=vpnkit.eth.sock,uuid=08f0f959-e13d-4be7-865e-9858f153cafa -U b30eaf12-9b76-44f5-8c97-b1e9b6016657 -s 2:0,ahci-hd,/Users/syang/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw -s 3,virtio-sock,guest_cid=3,path=vms/0,guest_forwards=2376;1525 -s 4,ahci-cd,/Applications/Docker.app/Contents/Resources/linuxkit/docker-desktop.iso -s 5,ahci-cd,vms/0/config.iso -s 6,ahci-cd,/Applications/Docker.app/Contents/Resources/linuxkit/docker.iso -s 7,virtio-rnd -l com1,autopty=vms/0/tty,asl -f bootrom,/Applications/Docker.app/Contents/Resources/uefi/UEFI.fd,,
    0  5313  5298   0  9:57am ttys001    0:08.56 /Users/syang/.crc/bin/crc-driver-hyperkit
    0  5318  5313   0  9:57am ttys001    0:15.43 /Users/syang/.crc/bin/hyperkit -A -u -F /Users/syang/.crc/machines/crc/hyperkit.pid -c 4 -m 8192M -s 0:0,hostbridge -s 31,lpc -s 1:0,virtio-net -U c3d68012-0208-11ea-9fd7-f2189899ab08 -s 2:0,virtio-blk,file:///Users/syang/.crc/machines/crc/crc.disk,format=qcow -s 3,virtio-rnd -l com1,autopty=/Users/syang/.crc/machines/crc/tty,log=/Users/syang/.crc/machines/crc/console-ring -f kexec,/Users/syang/.crc/cache/crc_hyperkit_4.2.14/vmlinuz-4.18.0-147.3.1.el8_1.x86_64,/Users/syang/.crc/cache/crc_hyperkit_4.2.14/initramfs-4.18.0-147.3.1.el8_1.x86_64.img,earlyprintk=serial BOOT_IMAGE=/ostree/rhcos-25a0a0143a04cbc9bcd5ca239bdd0ae765451d28dc2929b80b7a0a41d0686b96/vmlinuz-4.18.0-147.3.1.el8_1.x86_64 console=tty0 console=ttyS0,115200n8 rootflags=defaults,prjquota rw root=UUID=477c3d77-20c6-4ff3-8bb3-dc2543eedfbd ostree=/ostree/boot.0/rhcos/25a0a0143a04cbc9bcd5ca239bdd0ae765451d28dc2929b80b7a0a41d0686b96/0 coreos.oem.id=qemu ignition.platform.id=qemu
    0  5319  5298   0  9:57am ttys001    0:00.04 /Users/syang/.crc/bin/crc-driver-hyperkit
  501  5368  5298   0 10:04am ttys001    0:00.01 /usr/bin/ssh -F /dev/null -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none -o LogLevel=quiet -o PasswordAuthentication=no -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null<EMAIL_ADDRESS>-o IdentitiesOnly=yes -i /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc -p 22 exit 0
  501  5371  4035   0 10:05am ttys002    0:00.01 grep -i hyper
Shilis-new-mac:.crc syang$ /Users/syang/.crc/bin/hyperkit -version
hyperkit: v0.20180403-36-ge3b37f

Homepage: https://github.com/docker/hyperkit
License: BSD

Shilis-new-mac:.crc syang$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>): 56 data bytes
Request timeout for icmp_seq 0
^C
--- <IP_ADDRESS> ping statistics ---
2 packets transmitted, 0 packets received, 100.0% packet loss

Here is the debug log again:

Shilis-new-mac:~ syang$
Shilis-new-mac:~ syang$ crc version
crc version: 1.5.0+e1c8fb8
OpenShift version: 4.2.14 (embedded in binary)
Shilis-new-mac:~ syang$ crc setup
INFO Checking if oc binary is cached
INFO Caching oc binary
INFO Checking if CRC bundle is cached in '$HOME/.crc'
INFO Unpacking bundle from the CRC binary
INFO Checking if running as non-root
INFO Checking if HyperKit is installed
INFO Setting up virtualization with HyperKit
INFO Will use root access: change ownership of /Users/syang/.crc/bin/hyperkit
Password:
INFO Will use root access: set suid for /Users/syang/.crc/bin/hyperkit
INFO Checking if crc-driver-hyperkit is installed
INFO Installing crc-machine-hyperkit
INFO Will use root access: change ownership of /Users/syang/.crc/bin/crc-driver-hyperkit
INFO Will use root access: set suid for /Users/syang/.crc/bin/crc-driver-hyperkit
INFO Checking file permissions for /etc/resolver/testing
INFO Checking file permissions for /etc/hosts
INFO Setting file permissions for /etc/hosts
INFO Will use root access: change ownership of /etc/hosts
Setup is complete, you can now run 'crc start' to start the OpenShift cluster
Shilis-new-mac:~ syang$
Shilis-new-mac:~ syang$
Shilis-new-mac:~ syang$
Shilis-new-mac:~ syang$ crc start -p crc/pull-secret --log-level debug
DEBU No new version available. The latest version is 1.5.0
INFO Checking if oc binary is cached
DEBU oc binary already cached
INFO Checking if running as non-root
INFO Checking if HyperKit is installed
DEBU Checking if hyperkit is installed
INFO Checking if crc-driver-hyperkit is installed
DEBU Checking if crc-driver-hyperkit is installed
DEBU crc-driver-hyperkit is already installed in /Users/syang/.crc/bin/crc-driver-hyperkit
INFO Checking file permissions for /etc/resolver/testing
INFO Checking file permissions for /etc/hosts
Checking file: /Users/syang/.crc/machines/crc/.crc-exist
INFO Extracting bundle: crc_hyperkit_4.2.14.crcbundle ...
DEBU Uncompressing /Users/syang/.crc/cache/crc_hyperkit_4.2.14.crcbundle to /Users/syang/.crc/cache
INFO Creating CodeReady Containers VM for OpenShift 4.2.14-x86_64...
Found binary path at /Users/syang/.crc/bin/crc-driver-hyperkit
Launching plugin server for driver hyperkit
Plugin server listening at address <IP_ADDRESS>:53812
() Calling .GetVersion
Using API Version  1
() Calling .SetConfigRaw
() Calling .GetMachineName
(crc) Calling .GetMachineName
(crc) Calling .DriverName
Running pre-create checks...
(crc) Calling .PreCreateCheck
(crc) DBG | exe=/Users/syang/.crc/bin/crc-driver-hyperkit uid=0
(crc) Calling .GetConfigRaw
Creating machine...
(crc) Calling .Create
(crc) DBG | exe=/Users/syang/.crc/bin/crc-driver-hyperkit uid=0
(crc) Downloading /Users/syang/.crc/cache/crc.disk from file:///Users/syang/.crc/cache/crc_hyperkit_4.2.14/crc.qcow2...
(crc) DBG | exe=/Users/syang/.crc/bin/crc-driver-hyperkit uid=0
(crc) DBG | clean start, hyperkit pid file doesn't exist: /Users/syang/.crc/machines/crc/hyperkit.pid
(crc) DBG | Using hyperkit binary from /Users/syang/.crc/bin/hyperkit
(crc) DBG | Using UUID c3d68012-0208-11ea-9fd7-f2189899ab08
(crc) DBG | Generated MAC e:f0:e3:c7:4f:be
(crc) DBG | Starting with cmdline: BOOT_IMAGE=/ostree/rhcos-25a0a0143a04cbc9bcd5ca239bdd0ae765451d28dc2929b80b7a0a41d0686b96/vmlinuz-4.18.0-147.3.1.el8_1.x86_64 console=tty0 console=ttyS0,115200n8 rootflags=defaults,prjquota rw root=UUID=477c3d77-20c6-4ff3-8bb3-dc2543eedfbd ostree=/ostree/boot.0/rhcos/25a0a0143a04cbc9bcd5ca239bdd0ae765451d28dc2929b80b7a0a41d0686b96/0 coreos.oem.id=qemu ignition.platform.id=qemu
(crc) DBG | Trying to execute /Users/syang/.crc/bin/hyperkit -A -u -F /Users/syang/.crc/machines/crc/hyperkit.pid -c 4 -m 8192M -s 0:0,hostbridge -s 31,lpc -s 1:0,virtio-net -U c3d68012-0208-11ea-9fd7-f2189899ab08 -s 2:0,virtio-blk,file:///Users/syang/.crc/machines/crc/crc.disk,format=qcow -s 3,virtio-rnd -l com1,autopty=/Users/syang/.crc/machines/crc/tty,log=/Users/syang/.crc/machines/crc/console-ring -f kexec,/Users/syang/.crc/cache/crc_hyperkit_4.2.14/vmlinuz-4.18.0-147.3.1.el8_1.x86_64,/Users/syang/.crc/cache/crc_hyperkit_4.2.14/initramfs-4.18.0-147.3.1.el8_1.x86_64.img,earlyprintk=serial BOOT_IMAGE=/ostree/rhcos-25a0a0143a04cbc9bcd5ca239bdd0ae765451d28dc2929b80b7a0a41d0686b96/vmlinuz-4.18.0-147.3.1.el8_1.x86_64 console=tty0 console=ttyS0,115200n8 rootflags=defaults,prjquota rw root=UUID=477c3d77-20c6-4ff3-8bb3-dc2543eedfbd ostree=/ostree/boot.0/rhcos/25a0a0143a04cbc9bcd5ca239bdd0ae765451d28dc2929b80b7a0a41d0686b96/0 coreos.oem.id=qemu ignition.platform.id=qemu
(crc) DBG | exe=/Users/syang/.crc/bin/crc-driver-hyperkit uid=0
(crc) DBG | hyperkit pid from json: 5318
(crc) DBG | Searching for e:f0:e3:c7:4f:be in /var/db/dhcpd_leases ...
(crc) DBG | Found 1 entries in /var/db/dhcpd_leases!
(crc) DBG | dhcp entry: {Name:crc-q4zfq-master-0 IPAddress:<IP_ADDRESS> HWAddress:e:f0:e3:c7:4f:be ID:1,e:f0:e3:c7:4f:be Lease:0x5e35df0f}
(crc) DBG | Found match: e:f0:e3:c7:4f:be
(crc) DBG | IP: <IP_ADDRESS>
(crc) Calling .GetConfigRaw
(crc) Calling .DriverName
(crc) Calling .DriverName
Waiting for machine to be running, this may take a few minutes...
(crc) Calling .GetState
(crc) DBG | exe=/Users/syang/.crc/bin/crc-driver-hyperkit uid=0
(crc) DBG | hyperkit pid from json: 5318
Machine is up and running!
Machine successfully created
Created /Users/syang/.crc/machines/crc/.crc-exist
(crc) Calling .GetState
(crc) DBG | exe=/Users/syang/.crc/bin/crc-driver-hyperkit uid=0
(crc) DBG | hyperkit pid from json: 5318
Found binary path at /Users/syang/.crc/bin/crc-driver-hyperkit
Launching plugin server for driver hyperkit
Plugin server listening at address <IP_ADDRESS>:53822
() Calling .GetVersion
Using API Version  1
() Calling .SetConfigRaw
() Calling .GetMachineName
DEBU Waiting until ssh is available
(crc) Calling .GetSSHHostname
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: external
Using SSH private key: /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc (-r--------)
&{[-F /dev/null -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none -o LogLevel=quiet -o PasswordAuthentication=no -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null<EMAIL_ADDRESS>-o IdentitiesOnly=yes -i /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc -p 22] /usr/bin/ssh <nil>}
DEBU About to run SSH command:
exit 0
DEBU SSH cmd err, output: exit status 255:
DEBU error: Temporary Error: ssh command error:
command : exit 0
err     : exit status 255
output  :  - sleeping 1s
DEBU retry loop 1
(crc) Calling .GetSSHHostname
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: external
Using SSH private key: /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc (-r--------)
&{[-F /dev/null -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none -o LogLevel=quiet -o PasswordAuthentication=no -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null<EMAIL_ADDRESS>-o IdentitiesOnly=yes -i /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc -p 22] /usr/bin/ssh <nil>}
DEBU About to run SSH command:
exit 0
DEBU SSH cmd err, output: exit status 255:
DEBU error: Temporary Error: ssh command error:
command : exit 0
err     : exit status 255
output  :  - sleeping 1s
DEBU retry loop 2
(crc) Calling .GetSSHHostname
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: external
Using SSH private key: /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc (-r--------)
&{[-F /dev/null -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none -o LogLevel=quiet -o PasswordAuthentication=no -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null<EMAIL_ADDRESS>-o IdentitiesOnly=yes -i /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc -p 22] /usr/bin/ssh <nil>}
DEBU About to run SSH command:
exit 0
DEBU SSH cmd err, output: exit status 255:
DEBU error: Temporary Error: ssh command error:
command : exit 0
err     : exit status 255
output  :  - sleeping 1s
DEBU retry loop 3
(crc) Calling .GetSSHHostname
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: external
Using SSH private key: /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc (-r--------)
&{[-F /dev/null -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none -o LogLevel=quiet -o PasswordAuthentication=no -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null<EMAIL_ADDRESS>-o IdentitiesOnly=yes -i /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc -p 22] /usr/bin/ssh <nil>}
DEBU About to run SSH command:
exit 0
DEBU SSH cmd err, output: exit status 255:
DEBU error: Temporary Error: ssh command error:
command : exit 0
err     : exit status 255
output  :  - sleeping 1s
DEBU retry loop 4
(crc) Calling .GetSSHHostname
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: external
Using SSH private key: /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc (-r--------)
&{[-F /dev/null -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none -o LogLevel=quiet -o PasswordAuthentication=no -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null<EMAIL_ADDRESS>-o IdentitiesOnly=yes -i /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc -p 22] /usr/bin/ssh <nil>}
DEBU About to run SSH command:
exit 0
DEBU SSH cmd err, output: exit status 255:
DEBU error: Temporary Error: ssh command error:
command : exit 0
err     : exit status 255
output  :  - sleeping 1s
DEBU retry loop 5
(crc) Calling .GetSSHHostname
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: external
Using SSH private key: /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc (-r--------)
&{[-F /dev/null -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none -o LogLevel=quiet -o PasswordAuthentication=no -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null<EMAIL_ADDRESS>-o IdentitiesOnly=yes -i /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc -p 22] /usr/bin/ssh <nil>}
DEBU About to run SSH command:
exit 0
DEBU SSH cmd err, output: exit status 255:
DEBU error: Temporary Error: ssh command error:
command : exit 0
err     : exit status 255
output  :  - sleeping 1s
DEBU retry loop 6
(crc) Calling .GetSSHHostname
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: external
Using SSH private key: /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc (-r--------)
&{[-F /dev/null -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none -o LogLevel=quiet -o PasswordAuthentication=no -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null<EMAIL_ADDRESS>-o IdentitiesOnly=yes -i /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc -p 22] /usr/bin/ssh <nil>}
DEBU About to run SSH command:
exit 0
DEBU SSH cmd err, output: exit status 255:
DEBU error: Temporary Error: ssh command error:
command : exit 0
err     : exit status 255
output  :  - sleeping 1s
DEBU retry loop 7
(crc) Calling .GetSSHHostname
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: external
Using SSH private key: /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc (-r--------)
&{[-F /dev/null -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none -o LogLevel=quiet -o PasswordAuthentication=no -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null<EMAIL_ADDRESS>-o IdentitiesOnly=yes -i /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc -p 22] /usr/bin/ssh <nil>}
DEBU About to run SSH command:
exit 0
DEBU SSH cmd err, output: exit status 255:
DEBU error: Temporary Error: ssh command error:
command : exit 0
err     : exit status 255
output  :  - sleeping 1s
DEBU retry loop 8
(crc) Calling .GetSSHHostname
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: external
Using SSH private key: /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc (-r--------)
&{[-F /dev/null -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none -o LogLevel=quiet -o PasswordAuthentication=no -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null<EMAIL_ADDRESS>-o IdentitiesOnly=yes -i /Users/syang/.crc/cache/crc_hyperkit_4.2.14/id_rsa_crc -p 22] /usr/bin/ssh <nil>}
DEBU About to run SSH command:
exit 0

It does get an IP address: <IP_ADDRESS>
but again, your SSH command throws an error. Can you try again what happened with the ssh command to see why you can't login to the VM?

hi Gerard @gbraad
Thanks again for looking into this. I've done my 'crc delete; rm -rf .crc; crc setup; crc startup` again this morning, as I've been doing a few times a day everyday, and it worked - didn't stuck at ssh, for the second time in the past week, when it failed all the other times ((and I can't ping/ssh to the VM at <IP_ADDRESS>)). And it worked all the way for the first time - I can now log on to the crc web console!
I don't think I did anything consciously different, however, I do often connect to the company intranet via VPN, which I am NOT doing at the moment. so that might be the root cause?
I am closing this issue now since it's working now. Really appreciate your help!
Shili

VPN is a common root cause for this to fail. It is also documented. It is because some tools used by companies default to a route-all from a safety perspective. they could set up a split horizon or an exception for a segment, but often they won't. Note: The same happens for a lot of the tools out there to scale the wall or circumvent censorship. We got many reports on this ... since access to Google storage is often not possible, so VPNs are used to make this work.

I also had this problem today - I can confirm it was due to Cisco AnyConnect VPN. Once this was disconnected and closed - the crc start completed successfully.

I had the issue today and thanks to @renegadeandy's tip, yes, it's caused by Cisco AnyConnect VPN when it's connected it would loop forever:
...
DEBU retry loop: attempt 42 out of 60
(crc) Calling .GetSSHHostname
(crc) Calling .GetSSHPort
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHKeyPath
(crc) Calling .GetSSHUsername
Using SSH client type: external
Using SSH private key: /Users/brightzheng/.crc/cache/crc_hyperkit_4.5.1/id_rsa_crc (-r--------)
&{[-F /dev/null -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none -o LogLevel=quiet -o PasswordAuthentication=no -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null<EMAIL_ADDRESS>-o IdentitiesOnly=yes -i /Users/brightzheng/.crc/cache/crc_hyperkit_4.5.1/id_rsa_crc -p 22] /usr/bin/ssh <nil>}
DEBU About to run SSH command:
exit 0
DEBU SSH command results: err: exit status 255, output:
DEBU error: Temporary Error: ssh command error:
command : exit 0
err     : exit status 255
output  :  - sleeping 1s
DEBU retry loop: attempt 43 out of 60
...

May dig further to see whether there is any workaround.


Fixing a data race where the mux could unwind while we're simultaneously reading the last error

This PR changes our logic to not early-exit Receive() if l.close is closed. This fixes a data race we're seeing in Service Bus.
There are two channels that track the state of a link:

l.Detached, which gets closed after muxDetach() ultimately completes. This basically functions as a "mux is ended" signal.
l.close, which gets closed immediately when you call link.Close()

Receive is intended to wait for the mux to exit. If it doesn't then it can't return any contextual error that might have been set by mux() or it's multiple friends (muxFlow, muxDetach).

It looks, this change fixes https://github.com/Azure/azure-amqp-common-go/issues/61#issue-1046599616

It looks, this change fixes Azure/azure-amqp-common-go#61 (comment)

It seems like it could improve it but I wonder if there's more to it - I'll take a look.

Fixes https://github.com/Azure/azure-service-bus-go/issues/259


Loop through a nested table

Hello there,
we had this three nested tables within a big table where we provided data for it using datatable, now when we download it, all table headers would be listed consecutively underneath each other followed by the rows of each table in order.

// It'd look like so
name age add
name age add
name age add
Clark x x
Mark x x
Park x x

So, digging into your package we found a little workaround and decided to create a merge request for it
var context = {};

            var _setContextRows = function (element) {
                var container = {};
                container.rows = _nodesArray(element.querySelectorAll('tbody > tr'));
                container.rows = settings.headers ? _nodesArray(element.querySelectorAll('thead > tr')).concat(container.rows) : container.rows;
                container.rows = settings.footers ? container.rows.concat(_nodesArray(element.querySelectorAll('tfoot > tr'))) : container.rows;
                container.thAdj = settings.headers ? element.querySelectorAll('thead > tr').length : 0;
                return container
            }
            context.rows = [];
            context.thAdj = 0;
            function recurse(element) {
                var wrapperElement = element || el;
                if (wrapperElement.querySelectorAll('table').length) {
                    wrapperElement.querySelectorAll('table').forEach((value, index) => {
                        recurse(value);
                    });
                } else {
                    Array.prototype.push.apply(context.rows, _setContextRows(wrapperElement).rows);
                    context.thAdj += _setContextRows(wrapperElement).thAdj;
                }
            }

            recurse();

                context.filename = settings.filename === 'id'
                    ? (el.getAttribute('id') ? el.getAttribute('id') : self.defaultFilename)
                    : (settings.filename ? settings.filename : self.defaultFilename);
                context.uuid = _uuid(el);

It has got some jagged edges that needs to be smoothed out, so we're definitely open for feedback/edits.
EDIT: Another commit has been added to fix CI, so it's better to squash into single commit.

@clarketm Hi, I hope you can checkout my PR, thanks!

Hi,
I also have multiple tables inside main table. Request your support to exclude inside tables in the excel.
Expecting immediate response.

Request your support to exclude inside tables in the excel.

Uhh, could you please elaborate on what you mean by that? I don't get you!


REL-2214 Update SonarQube 9.4.0

@wouter-admiraal-sonarsource remeber this one 😅 https://github.com/SonarSource/helm-chart-sonarqube/releases/tag/master

@wouter-admiraal-sonarsource remeber this one sweat_smile https://github.com/SonarSource/helm-chart-sonarqube/releases/tag/master

Thanks a lot Tobias we have been fixing the issue with the kind help of @malena-ebert-sonarsource

Wohooo glad that you found the issue (:


test(bootstrap): add more test-coverage

This PR improves test coverage and verifies and documents functionality provided by environmentalize
Current state
missing tests for several features
Changes introduced here
adds tests to cover features
Checklist

[x] All commit messages adhere to the appropriate format in order to trigger a correct release
[x] All code is written in untranspiled ECMAScript (ES 2017) and is formatted using prettier
[x] Necessary unit tests are added in order to ensure correct behavior
[ ] Documentation has been added

Bors merge bot cheat sheet
We are using bors-ng to automate merging of our pull requests. The following table provides a summary of commands that are available to reviewers (members of this repository with push access) and delegates (in case of bors delegate+ or bors delegate=[list]).

Syntax
Description

bors merge
Run the test suite and push to master if it passes. Short for "reviewed: looks good."

bors merge-
Cancel an r+, r=, merge, or merge=

bors try
Run the test suite without pushing to master.

bors try-
Cancel a try

bors delegate+
Allow the pull request author to merge their changes.

bors delegate=[list]
Allow the listed users to r+ this pull request's changes.

bors retry
Run the previous command a second time.

This is a short collection of opinionated commands. For a full list of the commands read the bors reference.

bors try

bors try

bors retry

bors try-

bors merge

bors merge


Your extension is affected by event stream and have been blocked

Hi,
Kenneth here from the VS Code team.
Your extension is affected by https://code.visualstudio.com/blogs/2018/11/26/event-stream, and we have blocked your extension.
In order to enable your extension again the workflow is:

Fix the extension, submit an update to the marketplace
Send mail to<EMAIL_ADDRESS>and<EMAIL_ADDRESS>and notify us.
We will verify that the extension is okay
Our marketplace will publish the extension again and we'll remove the extension from the blocklist

@auchenberg thank you for letting me know about this issue. I've submitted an update to the marketplace that fixes the extension (version 0.4.0). I've also sent a mail to the addresses you've listed.
Just let me know if there are any other issues.

We have run validation of your extension and lifted the block.


Does it work  via Rails 5?

Hi,
I would like to know if the gem works with rails 5?
Gemfile Ruby And Rails Version
ruby '2.3.3' gem 'rails', '~> 5.1.4' gem 'pg', '~> 0.9'
Setup
rails g hstore:setup /Users/arturo/.rvm/gems/ruby-2.3.3/gems/activerecord-postgres-hstore-0.7.8/lib/activerecord-postgres-hstore/activerecord.rb:80:in class:PostgreSQLColumn': undefined method alias_method_chain' for ActiveRecord::ConnectionAdapters::PostgreSQLColumn:Class Did you mean?  alias_method (NoMethodError)

@interpegasus why would you want to have this gem working on Rails 5? HStore has native support in Rails 5. You can also use jsonb columns in a very transparent way. Check this issue: https://github.com/diogob/activerecord-postgres-hstore/issues/127


[cache-filter] Add disabled option

Commit Message: [cache-filter] Add disabled option
Additional Description: Adds the ability to have cache filter present but disabled. This makes it so a cache filter can more easily be configured with ECDS, and is a good precursor to making the configuration "inheritable". Addresses part of #25819.
This model is forward-compatible with the idea of inheritable/overrideable config, and the implementation is backward-compatible with existing config.
Risk Level: Low - cache filter is WIP, and change should be no-op for existing configs.
Testing: Added unit test coverage.
Docs Changes: Automatic from proto.
Release Notes: n/a
Platform Specific Features: n/a

/retest

/retest

/lgtm api

Related to #25927. May the #25927 be a generic way to disable a specific filter?

/lgtm api

/lgtm api

Does it have a config example please? I'm struggling with enabling per-route caching filter.

Does it have a config example please? I'm struggling with enabling per-route caching filter.

It still doesn't have any per-route support, this change was just a first small step towards that.


dcos_test_utils/marathon.py: delete marathon groups on purge

High-level description
https://jira.mesosphere.com/browse/DCOS-34466 describes that some tests leak Marathon groups (and apps, pods) during DC/OS Enterprise PR runs.
This is now interfering with other tests.
We are going to make this helper clean up pods, then we are going to apply it to DC/OS OSS and DC/OS Enterprise.
I think there is no controversy about the former.
See conversation on the JIRA about the latter - we can get to that.
Corresponding DC/OS tickets (obligatory)
These JIRA ticket(s) must be updated (ideally closed) in the moment this PR lands:

DCOS-34466 DC/OS Enterprise Integration tests - Make sure that Marathon is cleaned up between tests.

Related dcos-launch and dcos PRs
Is this change going to be propagated up into another repo? Test the change by bumping the dcos-test-utils SHA to point to these changes to test it. Link the corresponding PRs here:
Checklist for all PRs

[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[ ] Include a test in dcos-integration-tests in https://github.com/dcos/dcos or explain why this is not applicable:
[ ] Include a test in https://github.com/dcos/dcos-launch or explain why this is not applicable:

Integration tests were run and

[ ] Integration Test - Enterprise (link to job: )
[ ] Integration Test - Open (link to job: )

PLEASE FILL IN THE TEMPLATE ABOVE / DO NOT REMOVE ANY SECTIONS ABOVE THIS LINE
Instructions and review process
What is the review process and when will my changes land?
All PRs require 2 approvals using GitHub's pull request reviews.
Reviewers should be:

Developers who understand the code being modified.
Developers responsible for code that interacts with or depends on the code being modified.

It is best to proactively ask for 2 reviews by @mentioning the candidate reviewers in the PR comments area. The responsibility is on the developer submitting the PR to follow-up with reviewers and make sure a PR is reviewed in a timely manner.

The CI failure
	[Step 4/5] integration_test.test_dcos_is_up (2m:04s)

[17:05:08]	[Step 4/5] integration_test.test_dcos_is_up (2m:04s)
[17:05:08]	[Step 4/5] [2018-11-28 17:05:08,414|dcos_test_utils.dcos_api|INFO]: Attempting default user login
[17:05:08]	[Step 4/5] [2018-11-28 17:05:08,414|dcos_test_utils.helpers|DEBUG]: Request method POST: http://<IP_ADDRESS>/acs/api/v1/auth/login. Arguments: {'auth': None, 'json': {'token': '*******'}}
[17:05:08]	[Step 4/5] [2018-11-28 17:05:08,416|urllib3.connectionpool|DEBUG]: Starting new HTTP connection (1): <IP_ADDRESS>:80
[17:06:08]	[Step 4/5] [2018-11-28 17:06:08,420|urllib3.connectionpool|DEBUG]: http://<IP_ADDRESS>:80 "POST /acs/api/v1/auth/login HTTP/1.1" 504 180
[17:06:13]	[Step 4/5] [2018-11-28 17:06:13,426|dcos_test_utils.dcos_api|INFO]: Attempting default user login
[17:06:13]	[Step 4/5] [2018-11-28 17:06:13,426|dcos_test_utils.helpers|DEBUG]: Request method POST: http://<IP_ADDRESS>/acs/api/v1/auth/login. Arguments: {'auth': None, 'json': {'token': '*******'}}
[17:06:33]	[Step 4/5] [2018-11-28 17:06:33,282|urllib3.connectionpool|DEBUG]: http://<IP_ADDRESS>:80 "POST /acs/api/v1/auth/login HTTP/1.1" 500 110
[17:06:38]	[Step 4/5] [2018-11-28 17:06:38,283|dcos_test_utils.dcos_api|INFO]: Attempting default user login
[17:06:38]	[Step 4/5] [2018-11-28 17:06:38,283|dcos_test_utils.helpers|DEBUG]: Request method POST: http://<IP_ADDRESS>/acs/api/v1/auth/login. Arguments: {'auth': None, 'json': {'token': '*******'}}
[17:06:42]	[Step 4/5] [2018-11-28 17:06:42,023|urllib3.connectionpool|DEBUG]: http://<IP_ADDRESS>:80 "POST /acs/api/v1/auth/login HTTP/1.1" 500 110
[17:06:47]	[Step 4/5] [2018-11-28 17:06:47,029|dcos_test_utils.dcos_api|INFO]: Attempting default user login
[17:06:47]	[Step 4/5] [2018-11-28 17:06:47,029|dcos_test_utils.helpers|DEBUG]: Request method POST: http://<IP_ADDRESS>/acs/api/v1/auth/login. Arguments: {'auth': None, 'json': {'token': '*******'}}
[17:06:47]	[Step 4/5] [2018-11-28 17:06:47,051|urllib3.connectionpool|DEBUG]: http://<IP_ADDRESS>:80 "POST /acs/api/v1/auth/login HTTP/1.1" 500 110
[17:06:52]	[Step 4/5] [2018-11-28 17:06:52,057|dcos_test_utils.dcos_api|INFO]: Attempting default user login
[17:06:52]	[Step 4/5] [2018-11-28 17:06:52,057|dcos_test_utils.helpers|DEBUG]: Request method POST: http://<IP_ADDRESS>/acs/api/v1/auth/login. Arguments: {'auth': None, 'json': {'token': '*******'}}
[17:06:52]	[Step 4/5] [2018-11-28 17:06:52,081|urllib3.connectionpool|DEBUG]: http://<IP_ADDRESS>:80 "POST /acs/api/v1/auth/login HTTP/1.1" 500 110
[17:06:57]	[Step 4/5] [2018-11-28 17:06:57,086|dcos_test_utils.dcos_api|INFO]: Attempting default user login
[17:06:57]	[Step 4/5] [2018-11-28 17:06:57,087|dcos_test_utils.helpers|DEBUG]: Request method POST: http://<IP_ADDRESS>/acs/api/v1/auth/login. Arguments: {'auth': None, 'json': {'token': '*******'}}
[17:07:02]	[Step 4/5] [2018-11-28 17:07:02,372|urllib3.connectionpool|DEBUG]: http://<IP_ADDRESS>:80 "POST /acs/api/v1/auth/login HTTP/1.1" 500 110
[17:07:07]	[Step 4/5] [2018-11-28 17:07:07,374|dcos_test_utils.dcos_api|INFO]: Attempting default user login
[17:07:07]	[Step 4/5] [2018-11-28 17:07:07,374|dcos_test_utils.helpers|DEBUG]: Request method POST: http://<IP_ADDRESS>/acs/api/v1/auth/login. Arguments: {'auth': None, 'json': {'token': '*******'}}
[17:07:07]	[Step 4/5] [2018-11-28 17:07:07,396|urllib3.connectionpool|DEBUG]: http://<IP_ADDRESS>:80 "POST /acs/api/v1/auth/login HTTP/1.1" 500 110
[17:07:12]	[Step 4/5] [2018-11-28 17:07:12,402|dcos_test_utils.dcos_api|INFO]: Attempting default user login
[17:07:12]	[Step 4/5] [2018-11-28 17:07:12,402|dcos_test_utils.helpers|DEBUG]: Request method POST: http://<IP_ADDRESS>/acs/api/v1/auth/login. Arguments: {'auth': None, 'json': {'token': '*******'}}
[17:07:12]	[Step 4/5] [2018-11-28 17:07:12,432|urllib3.connectionpool|DEBUG]: http://<IP_ADDRESS>:80 "POST /acs/api/v1/auth/login HTTP/1.1" 500 110
[17:07:12]	[Step 4/5] ERROR
[17:07:12]	[integration_test.test_dcos_is_up] test setup failed
[17:07:12]	[integration_test.test_dcos_is_up] dcos_api_session_factory = <class 'dcos_test_utils.dcos_api.DcosApiSession'>

is probably unrelated -- though probably an important pointer at a test method weakness

Re-running the CI cehck.

Re-running the CI cehck.

That did it.
So, this build log shows a symptom of a flake: https://teamcity.mesosphere.io/viewLog.html?buildId=1314076

@gpaul I am merging w/o your review.


fix: fix the max_tokens is fixed at 300 in commitCmd

fix the default value (300) of maxTokens in reviewCmd, as it causes a bug in commitCmd where the max_tokens is fixed at 300

Codecov Report

Merging #97 (d2fdfcd) into main (b887729) will not change coverage.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff           @@
##             main      #97   +/-   ##
=======================================
  Coverage   24.39%   24.39%
=======================================
  Files           7        7
  Lines         291      291
=======================================
  Hits           71       71
  Misses        215      215
  Partials        5        5


Widget test: can not execute test with widget contain GetScaffold widget

Description
Widget test get an error when function under test contain GetScaffold widget
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following _CastError was thrown building ThemeBuilder(dirty, dependencies:
[_LocalizationsScope-[GlobalKey#d7b21], _InheritedTheme]):
Null check operator used on a null value

The relevant error-causing widget was:
  ThemeBuilder
  ThemeBuilder:file:///flutter/.pub-cache/hosted/pub.dartlang.org/get_smart-0.1.4+8/lib/src/widgets/button.dart:1225:7

When the exception was thrown, this was the stack:
#0      GetInterfaceX.localization (package:get_smart/src/utils/get_interface.dart:65:77)
#1      GetButton.back.<anonymous closure> (package:get_smart/src/widgets/button.dart:1234:23)
#2      ThemeBuilder.build (package:get_smart/src/widgets/widgets.dart:842:16)
#3      StatelessElement.build (package:flutter/src/widgets/framework.dart:4876:49)
#4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4806:15)
#5      Element.rebuild (package:flutter/src/widgets/framework.dart:4529:5)
#6      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4787:5)
#7      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4781:5)
...     Normal element mounting (10 frames)
#17     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3817:16)
#18     MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6350:36)
#19     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6362:32)
...     Normal element mounting (40 frames)
#59     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3817:16)
#60     MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6350:36)
#61     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6362:32)
...     Normal element mounting (142 frames)
#203    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3817:16)
#204    MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6350:36)
#205    MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6362:32)
...     Normal element mounting (23 frames)
#228    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3817:16)
#229    MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6350:36)
#230    MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6362:32)
...     Normal element mounting (7 frames)
#237    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3817:16)
#238    Element.updateChild (package:flutter/src/widgets/framework.dart:3551:18)
#239    _LayoutBuilderElement._layout.layoutCallback (package:flutter/src/widgets/layout_builder.dart:135:18)
#240    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2597:19)
#241    _LayoutBuilderElement._layout (package:flutter/src/widgets/layout_builder.dart:153:12)
#242    RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:2025:59)
#243    PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:918:15)
#244    RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:2025:14)
#245    RenderConstrainedLayoutBuilder.rebuildIfNecessary (package:flutter/src/widgets/layout_builder.dart:227:7)
#246    _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:316:5)
#247    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#248    MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)
#249    _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1003:7)
#250    MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
#251    RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:403:14)
#252    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#253    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#254    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#255    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#256    _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1376:11)
#257    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#258    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#259    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#260    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#261    _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1376:11)
#262    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#263    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#264    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#265    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#266    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#267    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#268    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#269    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#270    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#271    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#272    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#273    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#274    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#275    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#276    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#277    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#278    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#279    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#280    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#281    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#282    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#283    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#284    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#285    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#286    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#287    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#288    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#289    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#290    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#291    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#292    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#293    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#294    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#295    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#296    RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3462:13)
#297    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#298    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#299    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#300    _RenderTheatre.performLayout (package:flutter/src/widgets/overlay.dart:749:15)
#301    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#302    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#303    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#304    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#305    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#306    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#307    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#308    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#309    RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:545:11)
#310    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#311    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#312    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#313    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#314    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#315    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#316    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#317    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#318    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#319    RenderView.performLayout (package:flutter/src/rendering/view.dart:165:14)
#320    RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1757:7)
#321    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:887:18)
#322    AutomatedTestWidgetsFlutterBinding.drawFrame (package:flutter_test/src/binding.dart:1186:23)
#323    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:370:5)
#324    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1146:15)
#325    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1083:9)
#326    AutomatedTestWidgetsFlutterBinding.pump.<anonymous closure> (package:flutter_test/src/binding.dart:1050:9)
#329    TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
#330    AutomatedTestWidgetsFlutterBinding.pump (package:flutter_test/src/binding.dart:1037:27)
#331    WidgetTester.pumpWidget.<anonymous closure> (package:flutter_test/src/widget_tester.dart:548:22)
#334    TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
#335    WidgetTester.pumpWidget (package:flutter_test/src/widget_tester.dart:545:27)
#336    main.<anonymous closure>.<anonymous closure> (file://widget_test.dart:49:20)
#337    main.<anonymous closure>.<anonymous closure> (file://widget_test.dart:46:38)
#338    testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.dart:170:29)
<asynchronous suspension>
<asynchronous suspension>
(elided 5 frames from dart:async and package:stack_trace)

Code example
The example of code contain GetScaffold widget
Widget build(BuildContext context) {
    return WillPopScope(
      onWillPop: () async {
        return false;
      },
      child: GetScaffold(
        appBarHidden: true,
        toolbarsHidden: true,
        child: SafeArea(
          child: Container(),
        ),
      ),
    );
  }

The example code for a widget test:
testWidgets('build widget test', (WidgetTester tester) async {
  HomeView homeView = HomeView();
  await tester.pumpWidget(
    MaterialApp(
        home: Material(
      child: homeView.build(mockBuildContext),
    )),
  );
});

I use GetMaterialApp instead of MaterialApp in test widget, it fixed this error.

I use GetMaterialApp instead of MaterialApp in the widget test, it fixed this error.


Verify and update Animated Values pages code reference

Description
In the #1807 PR Animated values pages (Animated.Value, Animated.ValueXY) has been added back to the main sidebar. The included example has been updated, but the reference may be outdated.
What is the problem?
The state of the code reference on the animated pages is unknown.
How can we address it?
The code reference can be verified by analyzing and comparing the code located in the react-native repository to the actual content:

Animated.Value
Animated.ValueXY

Why is it important?
Because having up to date docs is important! 😃

@Simek  Can you state the problem a little bit more clearly . The state of which code reference is unknown ? .

Animated values pages (Animated.Value, Animated.ValueXY)

Pages are listed in the description above and the source code links shows exactly which file need to be reviewed:

AnimatedValue.js should be compared with the reference on the Animated.Value page
AnimatedValueXY.js should be compared with the reference on the Animated.ValueXY page

@Simek  Can you please mention a sample page in https://reactnative.dev/docs where reference is already properly done .

When I compared the AnimatedValue.js withAnimated.Value page , the data in the Animated.Value page is similar to the data provided as comment in  AnimatedValue.js
That was the task. Please do the same with XY. If there is no difference (documaentation is up to date with the current code) this issue should be closed.

@Simek The only problem i saw is description column was empty for setValue(value); and setOffset(offset); in  animatedValue page . I just added a description and PR .


modularized code, added workflows for linting formatting and building

#1  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @mAmineChniti and the rest of your teammates on  Graphite


Fix weekly realignment for spans: true option

Clamp iteration to the schedule start time so the first iteration does not
appear to be a preceding day (or possibly week).
When using the spans: true option, reversing over the start time to cover the
entire duration can move the opening time into a previous day/week and cause
weekly realignment to jump into the next weekly interval.
Count whole days for realigning weekly offsets to prevent rounding down to the
previous day.
Fixes #394

Amazing! Only just spotted this now. Thank you!


Collect test feature services

Needed:

Polygons USA Counties
Table Provider Table
Polyline: LINZ NZ Roads - Addressing
Point Modis fire hotspots
MultiPoint: Retail Stores
Date Field

In the future:

Z Pole points

need one for lines and polygons and multipoint if possible as well

M dimensions

Massive amounts of polylines in https://hydro.nationalmap.gov/arcgis/rest/services/NHDPlus_HR/MapServer/3?f=json courtesy of @kbvernon

Need missing / empty geometries


ci: workaround MSVC+release+x86 build problems

This change is

This built cleanly in my manual test.

This built cleanly in my manual test.


home key not working in vi mode

steps to reproduce:

enable vi mode in .zpreztorc: zstyle ':prezto:module:editor' key-bindings 'vi'
open shell and press ESC to enter vi 'normal' mode
press home key will not jump to the begin of line but print an H character

some environment info:

Mac OS X with iterm, TERM=xterm-256color
output of currently mapped key

# bindkey -L | grep begin
bindkey "^[OH" beginning-of-line

I'm happy with any response or hints, can provide more info if needed.

Are you still seeing this issue?

Yes, even after updating to commit fb37539.


transform and rater tests

@DavidHHShao @SayaZhang Please help review.

Looks like most the tests are for object init with external mocks, which may not be valuable.  Let me consolidate some thoughts and get back with some suggestions


feat: add get mutation header

PR-Codex overview
This PR adds new modules and updates existing ones in the codebase. Notable changes include:
Detailed summary

Added times.rs module to src/base/src directory
Updated db3_account.proto, db3_account_v2.proto, db3_base.proto, db3_bill.proto, db3_database.proto, db3_database_v2.proto, db3_event.proto, db3_message.proto, db3_mutation.proto, db3_mutation_v2.proto, db3_session.proto, and db3_storage.proto in src/proto/proto directory
Added a new formatting script format.sh
Updated formatting for src/proto/proto/db3_account.proto, src/proto/proto/db3_account_v2.proto, src/proto/proto/db3_base.proto, src/proto/proto/db3_bill.proto, src/proto/proto/db3_database.proto, src/proto/proto/db3_database_v2.proto, src/proto/proto/db3_event.proto, src/proto/proto/db3_message.proto, src/proto/proto/db3_mutation.proto, src/proto/proto/db3_mutation_v2.proto, src/proto/proto/db3_session.proto, and src/proto/proto/db3_storage.proto
Added bson_util.rs, strings.rs, and times.rs modules to src/base/src directory
Updated DB3Rollup.sol in bridge/contracts directory
Added cd bridge && npx prettier --write 'contracts/**/*.sol' command to format.sh script

The following files were skipped due to too many changes: src/proto/proto/db3_event.proto, src/node/src/storage_node_light_impl.rs, src/proto/proto/db3_indexer.proto, src/proto/proto/db3_mutation.proto, src/proto/proto/db3_mutation_v2.proto, src/storage/src/mutation_store.rs, src/proto/proto/db3_node.proto

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Codecov Report

Merging #474 (408bc2c) into main (5c0d765) will decrease coverage by 0.11%.
The diff coverage is 60.41%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##             main     #474      +/-   ##
==========================================
- Coverage   68.89%   68.78%   -0.11%
==========================================
  Files          49       50       +1
  Lines       10437    10503      +66
==========================================
+ Hits         7191     7225      +34
- Misses       3246     3278      +32

Flag
Coverage Δ

rust
68.78% <60.41%> (-0.11%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/node/src/storage_node_light_impl.rs
0.00% <0.00%> (ø)

src/base/src/times.rs
80.00% <80.00%> (ø)

src/storage/src/mutation_store.rs
84.61% <80.59%> (-2.57%)
:arrow_down:

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


x/build: builders appear to use their own custom devel version string format

See https://storage.googleapis.com/go-build-log/89055b21/android-amd64-emu_d4e8e53e.log. Instead of the usual format like devel +94887410d4 Sun Oct 25 07:51:58 2020 +0000 linux/amd64, they use a much simpler format via a VERSION file like devel 89055b21aff36834cb8d338420e0c553cbe5ab7a.
This is a problem because the builds will end up with an entirely different version format. This issue tracks why this custom format was added, and hopefully making the builders result in the same version that make.bash produces.
cc @dmitshur @heschik @bcmills @jayconrod

This is a problem because the builds will end up with an entirely different version format.

Why this is a problem?
I have a custom VERSION file on my GOROOT and it worked just fine.

See https://github.com/golang/go/issues/41116, and in particular https://github.com/golang/go/issues/41116#issuecomment-714619282.
I don't think there's anything wrong per se, but if tools want to start parsing information from go version or go env GOVERSION, we probably want to be careful with VERSION files containing arbitrary strings.

Thanks. I agree that if tools want to parse Go version, it needs to be careful about arbitrary version strings. I don't think we want to disallow arbitrary version strings, though (it may not work for some tools, and that is probably fine).

I personally don't have a horse in this race - I never create my own VERSION files, and I'm more than happy to have the tools I author simply error when a version string uses a custom format. The suggestion was by @heschik, so perhaps the need comes from gopls. cc @stamblerre

If we want to have a discussion about whether it's a good idea to require the major version I think that belongs on #41116, not here.

It was @dmitshur who requested a new issue be opened for the builders :) I personally prefer keeping discussion in the original issue.

This issue should be about determining what needs to be done on the builder side to support changes for #41116, if anything, and doing it. CC @golang/release.
There's more than one place in x/build that constructs a custom VERSION file, mostly related to debugging via gomote. I think those can be dealt with later.
The one that's relevant to testing commits is in buildgo.VersionTgz. It's used by cmd/coordinator in the buildStatus.writeGoSourceTo method, which has a lot of relevant information. From a relatively quick look, I don't see that the major Go version is computed there though.

Developers using toolstash also use custom version files in cases where you want to compare already-checked-in changes, see toolstash#hdr-Version_Skew. In case that matters.

After looking more into this, I left a comment on CL 264938 suggesting that it should not expect there to be any requirements met if there exists a VERSION file, since that file is allowed to have arbitrary content. It would be a problem not only on builders, but for users who have a custom VERSION file.
We may still want to change the custom VERSION file that builders write in the future, but I don't think we need to do anything now to unblock #41116 specifically.

I don't think there's anything more to do here, so closing.