Feature: Allow comparison of tags, etc.

Gitea version (or commit ref): current
Can you reproduce the bug at https://try.gitea.io:

[x] Yes, e.g. https://try.gitea.io/hans/testa/src/tag/funny

Description
Right now the comparison functionality is unnecessarily constraint. It only allows to compare branches, but not tags or single commits. Comparing to tags would be a very useful feature; e.g. to view changes since last release, or compare different releases.

Allow to provide tag names for comparison, e.g. https://try.gitea.io/hans/testa/compare/master...funny or https://try.gitea.io/hans/testa/compare/master...tag:funny

Provide green comparison button for tags as well as branches, e.g. the button is currently present here:
https://try.gitea.io/hans/testa/src/branch/master
but not here:
https://try.gitea.io/hans/testa/src/tag/funny

While we are at it, also provide the functionality for commit hashes, e.g.
https://try.gitea.io/hans/testa/compare/bd0928b003...master

This is also related to #1352

I am interested in this feature as well, and it looks like 3 has already been implemented at some point.
As for always showing the compare button, it should be fine to just remove .CanCompareOrPull from here? https://github.com/go-gitea/gitea/blob/946bbbe9b55831ede80518ff4177f940b303a674/templates/repo/home.tmpl#L65 The compare page already seems to be able to properly detect if a pull request is possible when branches are selected anyways.
compare commits: https://try.gitea.io/davidak/youtube-dl/compare/d65d89183f...48c5663c5f
compare branches: https://try.gitea.io/davidak/youtube-dl/compare/master...download-server
compare commits across different branches: https://try.gitea.io/davidak/youtube-dl/compare/416da574ec...36ef9d9509
However, I'm not sure how to add the ability to enter (and possibly search and select) commits from the branch drop down on the compare page, or if there's a better way to implement the user interface for this? An alternative to just make editing the url easier could be adding copy buttons next to commits like github has https://github.com/go-gitea/gitea/commits/master since the text can't be selected from the hash.

As I just discovered, commit/branch/tag comparison already works, it can be accessed from the /branches page under each repo then clicking on New pull request (the compare page is shown with a button to start a new pull request). Commits/branches/tags can all be compared by changing the URL tip...base.

ability to enter (and possibly search and select) commits from the branch drop down on the compare page, or if there's a better way to implement the user interface for this?

Also not sure about commits (showing all commit hashes under the dropdown menu would be rather bad), but I think tags should appear in the dropdown.

Anyone following this thread, you may be interested in PR #15695, which was recently merged, and a new PR #15723.  This latest PR doesn't exactly implement number 2 above, but it's an alternate UI for selecting tags to compare.  Please help test and review it.
There's another issue for two-dot compare #12349, and that would be nice.  But I don't think that should block movement here, especially based on what GitHub's UI does.


Added travis-ci build support

Added support for travis-ci.org, you should activate it to check if the code is compiling correctly in every PR or commit.
Also I've added a badge in the top of the README.md file, after activating the https://travis-ci.org/exofoundation/CivX-Qt/ you must edit that file to point to your build

Awesome, can we squash this PR to keep things clean if it gets merged?

Does this actually build? There is no Makefile in the root of the repository and the build.sh uses:
cd src
sudo make -j$NPROC -f makefile.unix
sudo cp civxd /usr/bin/civxd

^ which isn't good practice (don't use sudo with make, usually use install routines instead of direct copy - and local/bin is preferred over system bin)

I'm building just calling qmake and make, I'm avoiding the original build.sh because of sudo as you say.


chore: fix-up build-a-web3-client-side-package-for-your-dapp

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)

Closes #32

@moT01 I have marked this as ready for review, but there is still an issue with the tests that I cannot figure out:

The --before-all hook should start node node/provider.js
The --after-all hook should kill that process

The issue is, it seems the process is being killed before the tests are finished being run in Promise.all
Any help would help get this over the line

@moT01 Thank you for all your help with this. This should be ready.


system check: improve arch

Refactor system check architecture, improve error hinting (thanks to @kinkerl) and use busybox ping for docker server connection check

:+1:

Hey @kinkerl, could you please try running that branch on your machine and post results here?

The tests work when I am in the docker group. When I remove myself from the docker group and the error output looks good:
 ✓  Git
 ✓  Docker Client
 ✓  Docker Machine
 ✓  Docker Compose
 ✖  Docker Server Connectivity

The following errors occurred:
 Docker Server Connectivity:
 > Command 'docker run --rm busybox ping -c 1 <IP_ADDRESS>' returned non-zero exit status 1
 > No read permissions on /var/run/docker.sock. Please make sure the unix socket can be accessed without root permissions. More information can be found in the docker installation guide: https://docs.docker.com/engine/installation/linux/ubuntulinux/#create-a-docker-group

New structure is very nice. Two very minor things:

the error messages could be also printed with fg='red'
doc strings are missing (maybe not needed?)

One medium thing:
We could make better use of errorcodes. Right now, we only get the information 0 = no error, and 1= error. The check classes could get custom errorcodes (with default = 1) and the cli command could return these errorcode. This would help a lot to distinguish problems on shell level. This might be useful in the future when integrating aldryn-client into automated infrastructure. If multiple errors occur, the errorcode of the first found error should be returned.

One more thing. When reading the errormessage, it is not clear why docker run --rm busybox ping -c 1 <IP_ADDRESS>  was called in the first place and why it is a problem when its not working. It should be explained that this is a test to try connectivity to docker.
In addition, this test checks for docker connectivity AND internet connectivity from inside the docker container. Is this intentional? Maybe this can be split into two tests:

docker run --rm busybox true <--- server connectivity
docker run --rm busybox ping -c 1 <IP_ADDRESS> <--- internet connectivity from inside docker

I had time to test the command in another network.
My docker network was not set up properly due to a problem related to ipv4 and ipv6. This was found and tested with the ping command. But as already said, the server connection itself is working fine. Only the internet connection inside docker did not work. I created another test for this.
Then, later in the project setup, the npm install command inside docker failed because the DNS resolution needs a predefined DNS server in my network environment to work. So this was not tested properly and I also created a test for this:
Here is a commit with the changes. Is there a better way to share this in the pull request?
https://github.com/kinkerl/aldryn-client/commit/aaa993fd1b9cc6763ff1cb334481a7092288a6f7
Thoughts?

@kinkerl I've added some more changes, one for the new Docker for Mac Beta and I did some refactoring on the checks itself - could you please try to run them again?
You can either run it from source or use one of those binaries:

aldryn-Darwin-2.2a4.zip
aldryn-Linux-2.2a4.zip

Another release with reduced timeouts.

aldryn-Darwin-2.2a5.zip
aldryn-Linux-2.2a5.zip

Bugfix:

aldryn-Darwin-2.2a6.zip

I don't have time to test it right now but you can try to use the timeout command (http://man7.org/linux/man-pages/man1/timeout.1.html). Not sure if this is part of busybox, it is in ubuntu.
This will return a non-zero error code if the command had to be stopped after the timeout. If the command exits naturally it will return the error code of the command.

Thanks @kinkerl, that works :smile:
Yet another version:

aldryn-Linux-2.2a7.zip
aldryn-Darwin-2.2a7.zip

perfect ;)

LGTM


Can't set properties or metrics properties in PageViewTelemetry class

If you want to track page views in .net you can't provide provide the properties or metrics property as it is a read only.
https://github.com/Microsoft/ApplicationInsights-dotnet/blob/develop/src/Core/Managed/Shared/DataContracts/PageViewTelemetry.cs#L126
Expected:
I can set the properties and metrics properties in the page view telemetry class
Actual:
I can only specify page name, duration, sequence, timestamp and uri.

You cannot set your collection as properties, but you can add properties one by one:
var t = PageViewTelemetry();
t.Properties.Add("a", "b")


Incorrect Stage values in FeatureGate documentation

Problem:
Incorrect stage values in FeatureGate documentation

LegacyNodeRoleBehavior has a stage of True as of 1.19, which is not a valid stage.
WindowsEndpointSliceProxying has a stage of beta as of 1.21; all other stage values are capitalized.

Feature
Default
Stage
Since
Until

LegacyNodeRoleBehavior
true
True
1.19

WindowsEndpointSliceProxying
true
beta
1.21

Proposed Solution:
Correct Stage text for listed FeatureGates
Page to Update:
https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/

That's not what I see on that page. Can you include a screenshot and confirm the URL you're viewing @brandond ?
If possible, it'd be useful to see the HTTP headers that go with the page you screenshotted.

/triage accepted
/language en
/priority backlog
/help

Thanks @brandond

Is the change for LegacyNodeRoleBehavior from True to Beta, and add 1.21 to Until?

AIUI the change for LegacyNodeRoleBehavior is:
change the Stage column from True to Beta
and the change for WindowsEndpointSliceProxying is:
change the Stage column from beta to Beta
no other changes needed


NumberOfDivergingBits vs KeyEquals

Do we really need both?
Why is one aborting early and the other is not?
Should abort-early logic depend on DIM?
Does any of this make a difference? -> It may make one in DIM=30 or so....

Resolved in #97


Autodetected WSL profiles do not appear if Terminal opened too soon after login

Environment
Windows build number: 10.0.21313.0
Windows Terminal version (if applicable): 1.6.10412.0 or earlier

Any other software?

WSL, any distribution(s) installed

Steps to reproduce

Log on to Windows.
Immediately open Windows Terminal.
Observe that the WSL distributions are not listed on the '+' drop-down menu.
Close Terminal and wait for a short time.
Reopen Terminal.
Observe that the WSL distributions are now properly listed.

It may be necessary for the machine to be heavily loaded on logon to trigger the issue.
Expected behavior
The WSL distributions installed on the machine/listed in the profile to be displayed always.
Actual behavior
WSL distributions installed on the machine, even those whose profile has been customized in the Terminal settings, do not appear in the '+' drop-down menu until the machine has passed a certain stage of the logon process. While this can be worked around by opening Settings and making a null edit, or by closing and reopening Terminal, it does effectively render the "Launch on machine startup" setting useless for its intended purpose.

@cerebrate - please review if https://github.com/microsoft/terminal/issues/7199 covers your ask.

Thanks for the report! This looks like a /duplicate of #7199


generate_auth.sh: Exit if password verify fails

I had a failed password verification in the openssl passwd -apr1 call in generate_auth.sh. The script still deleted and recreated the ingress-auth secret, but with a blank password hash.
I could have used set -e at the start of the script to exit on any failures, but I suspect that it would be better to continue if there's a failure later in the script (if only to delete ingress_auth.tmp), so I've just made it exit if openssl passwd -apr1 gives an error.

That's much better. Thanks!


Guard target with data

Question
Hi,
When using a guard, I don't think it's possible to pass any arbitrary data with the target is it?
I read through the tests and experimented, but I thought I'd ask here to double check.
We can pass arbitrary data with the .transition() method to be used in the guard cond function.
Not sure if it makes sense or not with a data object in the target.
Here's an example of what I was trying to do, the data property after target:
Description:
      on: {
        LOGIN: [
          {
            target: "active",
            cond: () => false
          },
          { target: "error", data: { details: "No permission" } }
        ]
      }

Thanks.

Another note: if you want to refine your error states further (which allows you to model them properly and prevent impossible states, like two conflicting error types, etc.), the above pattern allows you to do that. For example:
passwordError: {
  type: 'parallel', // v4 syntax
  states: {
    length: {
	  initial: 'valid',
	  states: { tooShort: {}, tooLong: {}, valid: {} }
    },
    chars: {
	  initial: 'valid',
	  states: { containsIllegal: {}, valid: {} }
	history: {
	  initial: 'valid',
	  states: { prevUsed: {}, valid: {} }
	}
  }
}

With the above, you can model your error states and say, for example:

'error.length.tooShort' and 'error.history.prevUsed' can both be true at the same time
'error.tooShort' and 'error.tooLong' must not both be true at the same time

@davidkpiano Great stuff, thank you!

@davidkpiano I'm on v3.3.3 - just using the version I get with npm install
Your first example I made two small changes, which I'll add here for documentation for the v3.3.3 case.

Add the states property to nested states - else it throws (I think just a typo in your example)
Use data else meta leave the details undefined (noted v3 and v4 differences)

{
  initial: "idle",
  states: {
    idle: {
      on: {
        LOGIN: [
          { target: "active", cond: () => false },
          // { target: "error.noPermission" }
          { target: "error.notEnabled" }
        ]
      }
    },
    active: {},
    error: {
      states: {
        noPermission: {
          data: { details: "No permission" } // 'meta' is v4, 'data' is deprecated (v3)
        },
        notEnabled: {
          data: { details: "Not enabled" }
        }
      }
    }
  }
}


Small taskbar size causes issues with the default taskbar icons

Tried the latest version and still the same issue, I am using a 1440p monitor if that's relevant.

Thank you for reporting this issue! Currently I do not have a solution for this issue, because I have not found a Registry Tweak to solve this. I have heard about some people installing third party clock applications that are able to correct this, perhaps this is also a solution for you?
I am hoping Microsoft will revise the Taskbar in Windows 11, since there are multiple issues and bugs with it. This program is only a temporary solution, that will (hopefully) become obsolete one day.

Which third party clock apps are you referring to? I have the same issue. Start11 manages to correctly display date and time with a small taskbar/icon design. But it's overkill as the small sized taskbar is the only UI change I want. ElevenClock works well on the secondary screen, but doesn't do anything to align the icons or adjust the padding for the small icons/taskbar. This only affects the new windows 11 icon groups (like wifi, sound, battery), not other individual taskbar icons like Onedrive.
Thanks for any idea. This is very annoying but I'd like to avoid having to use start11 if possible.


403's when a long @Async process runs: vault should not publish a ThreadPoolTaskScheduler bean on Spring's context

The fix in https://github.com/spring-projects/spring-vault/issues/308 is still interfering with other Spring code using vault.  Vault still publishes a Bean for everyone to use, as Spring will match the bean by type if it is the only one.
This bean should not be public at all as it is (apparently) vital for Spring Vault's functioning.  If an unrelated method uses this bean by accident (which is easy to do as it used by @Async) and runs a long process (blocking vault code as the executor only has 1 thread) it can interfere with Vault's refresh mechanisms.  This interference will show up as 403's on all secrets being requested.
I would suggest NOT publishing this bean in Spring's context.  From what I can quickly glance from the code (with grep), it doesn't need to be a bean at all (the name vaultThreadPoolTaskScheduler is not used anywhere apart from declaration).  Make it a static private field in  AbstractVaultConfiguration and have the code calling threadPoolTaskScheduler just use that.

Thanks for report. In Spring Vault we exposed a scheduler bean directly while in Spring Cloud Vault we added a wrapper (TaskSchedulerWrapper) to not interfere with these beans. We could wrap the bean and make the retrieval method getVaultThreadPoolTaskScheduler overridable so you get more control over the desired bean to look up. Likely, we could introduce that change for 2.4.1 since 2.4.0 is out for about a month.

That's resolved now by introducing TaskSchedulerWrapper, also backported to 2.3.x.

Thank you for the quick response, we'll update to the latest version as soon as its released.


Explain

Adds client-side functionality to present the user with clickable links on hovering over certain error messages, to display a detailed explanation.

Also, hey it's me, Frederik ;) I'm working on the dhall-lsp-server project as part of GSoC. Thank you for the great work you did, getting things up and running!
Could you add me as a maintainer to the vscode-dhall-lsp-server project? That would allow me to iterate a bit faster, keeping things in sync with the haskell part of the project.

Hi Frederik,
it's nice to have you here :) I've send you an invite to become a collaborator.


Internationalization support

It would be nice if the UI, e-mails and other user facing surface areas could be translated to other languages.
If you consider this is something worth doing, I guess the sooner the better, while there are few hardcoded copies to adapt.

Yup, the plan is to use Django's built-in i18n support for all that; I believe I've left all the strings in a place where they can be wrapped, it's just a matter of going through and doing so once the codebase settles down slightly.
(I have avoided it so far as I don't want to start getting people translating stuff that might get deleted next week)

Is the project in a moment that the strings can be considered sufficiently stabilized? And would you take PRs for the initial setup?

I'm willing to contribute to Japanese translation anytime once ready.


Intercoms [crappy radios]

About the PR
adds in wallmount intercoms in order to support future changes to the radio system.
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame
[ ] This PR does not require an ingame showcase

Changelog

:cl:

add: Added wallmounted intercoms, useful for radioing a department.

Do these have on/off for the speaker / microphone separately already from the RadioDeviceSystem? It seems that system has toggles both using ActivateInWorld but I can't tell if you can selectively turn off the speaker but keep the microphone on or vice versa.

Also is the radio input range just two tiles? The intercom should probably have a larger range than the handhelds. Maybe others feel differently, but I've always seen this as "room" radios.

This doesn't relay radio. This is a fixed structure that relays messages to a specified channel. Its meant to be used to send intentional messages through to a specific department.

FYI one of the failing tests is actually a construction test doing its job and not just spurious


Mention pbs3 as an alternative for Windows?

The Readme and docs say that Windows is not supported by sh — which is true, and I unde the rationale.
sh evolved from pbs, and more there is a fork of pbs called pbs3 ( https://github.com/xapple/pbs3/ ) which claims that it works on Windows & in Python 3.
Perhaps the sh docs might mention it briefly for people who need Windows functionality.
If only relatively simple functionality of sh is used, it should be possible for people to use sh on macOS/Linux but use pbs3 on Windows. Maybe someone would even care to make a package that wraps sh & pbs3 in a simple way, exposing the same API using the different backends depending on the platform.

Is pbs3 still active? The last commit was quite awhile ago and the tests look incomplete. I could mention it if it was confirmed to be maintained and there was more information about feature parity. Could you follow up with xapple on this?

Reopen if you decide to pursue this please.

Good idea @tritium21. That's an easy fix


[FIXED] Profiler use of WriteTimeout was preventing so trace collection

During a recent change related to port, the profiler http server
config was changed and WriteTimeout of 2 seconds was added.
This was breaking profiling requests that check that the server
WriteTimeout is not less than the request's duration (for instance
it would be impossible to collect a trace of 5 seconds with such
setting).

Coverage increased (+0.08%) to 91.989% when pulling 351a23ecf768d403fba1102ad4f3c6c3ad7abdb3 on fix_profiler into 92c4481d1b853c7ca7b1648ae20f7867729c9a76 on master.

Closing for now, will re-open with consolidated one with Monitoring server issue.


Extract All URLs from a message and return an array.

In speaking with Abusix, their engineer informed us that one thing that would greatly help those using the MTA for anti-abuse, and which is not really available in existing MTAs, is the ability to call a function that would extract all URLs from an email message and return them, making it much easier to do certain lookups and analysis when deciding on the disposition of the message.

gist of implementation is:

See this method for inspiration on how to trigger the message parser: https://github.com/KumoCorp/kumomta/blob/2037371793df4b6b615af224e3ad22c6a622524a/crates/message/src/message.rs#L864-L887
use a some means to match and extract all urls from the message
return it as an array
expose it to lua as a method of the message object


Document enableInternetSecurity for vNet to vHub connection

When connecting a vNet to a vHub, you can programmatically configure a setting called enableInternetSecurity which is mentioned as a request property here. However, I cannot find any documentation explaining what this setting actually does, and it also does not appear to be exposed via the Azure Portal.
Can you please provide some documentation on what effect this setting has?

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

ID: a223dfd5-e81f-fc12-fff4-cfcae2d3a1e8
Version Independent ID: 743589e1-3a49-6a77-e8bc-3af9f7939dbf
Content: Connect a VNet to a Virtual WAN hub - portal - Azure Virtual WAN
Content Source: articles/virtual-wan/howto-connect-vnet-hub.md
Service: virtual-wan
GitHub Login: @cherylmc
Microsoft Alias: cherylmc

@mlcooper , thank you for your query. We'll review it and get back to you shortly!

@mlcooper , you can find the "enableInternetSecurity" documented in the below pages:
https://learn.microsoft.com/en-us/azure/virtual-wan/how-to-forced-tunnel#advertise-default-route-to-clients
https://learn.microsoft.com/en-us/azure/virtual-wan/scenario-route-through-nvas-custom#alternate
EnableInternetSecurity flag is used when advertising default route (<IP_ADDRESS>/0) to clients in Virtual WAN and this flag is only available via PS/CLI/REST.
Portal users must enable 'Propagate to default route' on connections (VPN/ER/P2S/VNet) for the <IP_ADDRESS>/0 route to take effect.
PS/CLI/REST users must set flag 'enableinternetsecurity' to true for the <IP_ADDRESS>/0 route to take effect.
Kindly let us know if the above helps or you need further assistance on this issue.

So this enableInternetSecurity setting is only applicable for Virtual WAN Point-to-site VPN?

@mlcooper , this enableInternetSecurity setting/flag is applicable when you want to advertise default route (<IP_ADDRESS>/0) within Virtual WAN. It could be Point to site VPN forced tunneling or routing all your traffic via a NVA.

Thanks @GitaraniSharma-MSFT - this was the information we needed.


GitHub Action to check for broken links in .md files

Closes: #1850
Runs daily, creates an issue if finds broken links

What's the difference from #4712 ?

none, actually


[Question] How about hardcode the configuration

With the new serverless online scanner, we are removing the config-manager, then we have two options:

Create a CLI app to do what we were doing with the config-manager.
Hardcode the configuration we are going to use.

With number two, we can validate that we have all the necessary dependencies installed during the build process, so we can avoid problems because of missing dependencies and we are removing complexity to the system.
The configuration doesn't change too often, and always is related with a new deploy, so in my opinion, it will be easy to maintain.
During some deploys for testing/staging/etc. taking the config from the database always add a easy to forget step. Having the config hardcoded, you will always have a config.
thoughts @webhintio/core ?

How long does it take to deploy a new version?
We have to also enable and disable the related post of the website, right?
I'm not a huge fan of configs in the code tbh.
Personally I prefer a web app than a cli. The reason is that I don't need to install anything to use it, it's always up to date, we can on board anyone easily and we can use my phone if things come to worse and don't have a computer.

From: Jesus David García Gomez<EMAIL_ADDRESS>Sent: Thursday, August 8, 2019 18:50
To: webhintio/online-service
Cc: Antón Molleda; Team mention
Subject: [webhintio/online-service] [Question] How about hardcode the configuration (#619)
With the new serverless online scanner, we are removing the config-manager, then we have two options:

Create a CLI app to do what we were doing with the config-manager.
Hardcode the configuration we are going to use.

With number two, we can validate that we have all the necessary dependencies installed during the build process, so we can avoid problems because of missing dependencies and we are removing complexity to the system.
The configuration doesn't change too often, and always is related with a new deploy, so in my opinion, it will be easy to maintain.
During some deploys for testing/staging/etc. taking the config from the database always add a easy to forget step. Having the config hardcoded, you will always have a config.
thoughts @webhintio/corehttps://github.com/orgs/webhintio/teams/core ?
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/webhintio/online-service/issues/619?email_source=notifications&email_token=AAEUDAXGQGEQPB75O6RMZDDQDRFEJA5CNFSM4IKMROA2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HEGTHTQ, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAEUDAV5IOLE42OOJVX2VXTQDRFEJANCNFSM4IKMROAQ.

I don't know, because it would be deployed in azure function, I think @utsavized can answer that question.

Personally I prefer a web app than a cli.

Me too, but the web app is going to be removed in the serverless version, so the options are: CLI or hardcoded :(

Deployment takes a couple of minutes.
In regards to validation -- how is a web any different than a CLI other than having a simple-to-use UX without any dependencies? Did it validate somehow? I was under the impression that it just replaced the config value in the DB and things could still break? If we want validation, regardless of whether we use CLI or Web, wouldn't we have to pull in the updated config, build, validate then deploy all the services?
There are a few other options as well:

Use config as a sub module. So you basically check in via git the latest config (as json), that gets pulled in the the parent repo (serverless in our case), so it goes through the validation pipeline then deploys.

Use configs in storage (blob). This skips validation, but sort of plugs the gap between CLI vs UX, only admins can access it and is easy to do a quick drop of a new config json, which the code always picks up from.

To add to this -- I am not dead set on not having a Web UX for this. It seems like most of the teams want it, so I am okay adding it. We just have to be aware that if we want to go fully cloud agnostic, that may create a problem since we'd need a web app. The serverless package that we were planning on using only works with functions, and I have not seen anything that does something similar for web apps. The only generic option is using a full VM to host the web UX, but that that is the opposite of what we are trying to do.

how is a web any different than a CLI other than having a simple-to-use UX without any dependencies?

I'd say that's a big deal 😊
We could have a function that exposes an API and make the cli and web consume that. We can maybe start with the cli using a secret token because that will probably be the fastest and then deploy a web that works with this api and has user Auth.

From: Utsav Pandey<EMAIL_ADDRESS>Sent: Thursday, August 8, 2019 8:53:38 PM
To: webhintio/online-service<EMAIL_ADDRESS>Cc: Antón Molleda<EMAIL_ADDRESS>Team mention<EMAIL_ADDRESS>Subject: Re: [webhintio/online-service] [Question] How about hardcode the configuration (#619)
To add to this -- I am not dead set on not having a Web UX for this. It seems like most of the teams want it, so I am okay adding it. We just have to be aware that if we want to go fully cloud agnostic, that may create a problem since we'd need a web app. The serverless package that we were planning on using only works with functions, and I have not seen anything that does something similar for web apps. The only generic option is using a full VM to host the web UX, but that that is the opposite of what we are trying to do.
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/webhintio/online-service/issues/619?email_source=notifications&email_token=AAEUDASXWRRWTHGXV5XQR4TQDRTTFA5CNFSM4IKMROA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD34SKNA#issuecomment-519644468, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAEUDAUO43MSUDKLWZH7ETTQDRTTFANCNFSM4IKMROAQ.

how is a web any different than a CLI other than having a simple-to-use UX without any dependencies?
I'd say that's a big deal 😊

I meant that in regards with validation :)
I don't mind, I am okay with whatever. AFAIK, we'd need 1 function per API endpoint if we want to be truly RESTful.

Back to the original question, considering this is the one and only default configuration we always intend to use, I don't see what benefit we're getting from storing this as data. We're not talking about API keys or other secrets here which is usually the reason for separating configuration from code.
It just seems like unnecessary complexity to have a web app or CLI to update something that really should only change when our code does. As @sarvaje mentioned, it's also a step we can easily forget. Plus it's also an additional knowledge burden for other people learning the system.
Why not keep this as simple as possible?

And if we just want to maintain separation from the online scanner code itself, wouldn't something like publishing a @hint/configuration-scanner be more in line with how we handle defaults for the CLI?

The reason why the configuration was initially separated was to easily test.
Right now we are using jsdom and we tested a few different configurations. IIRC we have separate a worker with the hints for third party services, another for hints that need access to the code and another one for axe.
This was done after a few trials and I think we were glad to have this in place for testing instead of having to deploy each time.
Another example: we used to have another hint for image optimization that had to be disabled asap. We managed to do that without having to deploy.
Right now we might have only 2min deploys but I think it's still important to have this flexibility to split the number of workers if needed, and/or enable/disable rules without having to deploy because when we have to do it urgently we will probably have limited connection, or the code will not be in the machines we have access to, or something similar. I've been burned in the past many times with situations like the ones I mentioned and I'd rather be prepared and never have to use them than being in a position where I start cursing because we didn't implement it.

From: Tony Ross<EMAIL_ADDRESS>Sent: Thursday, August 8, 2019 9:29:04 PM
To: webhintio/online-service<EMAIL_ADDRESS>Cc: Antón Molleda<EMAIL_ADDRESS>Team mention<EMAIL_ADDRESS>Subject: Re: [webhintio/online-service] [Question] How about hardcode the configuration (#619)
And if we just want to maintain separation from the online scanner code itself, wouldn't something like publishing a @hint/configuration-scanner be more in line with how we handle defaults for the CLI?
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/webhintio/online-service/issues/619?email_source=notifications&email_token=AAEUDARQS6H7EOEPLRBHBIDQDRXYBA5CNFSM4IKMROA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD34VEPA#issuecomment-519655996, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAEUDAVEVALNASFDVVIH5JLQDRXYBANCNFSM4IKMROAQ.

What if we have a CLI for compatibility for everybody, and then, in the same repo or in a different one, we have an UX. IIRC, we already have a CLI implemented, so it will be just review if we need something else or not.
What do you think?

This sounds good to me. A bit of extra work, but if the trade off is worth having the UX, we should do it.

Fine with me since everyone else seems on board. I'll seek out my cost savings elsewhere 😉

@antross @molant @sarvaje Can this be closed?

OK with me as long as there's an issue tracking the work pointing to this one for historic purposes 🙃

We decided to use a CLI so closing this issue.


[VS Code] [Audio] Calling module not available. The specified module could not be found.\%3F\C:\Users\xz.vscode-insiders\extensions\ms-vsliveshare.vsliveshare-audio-0.1.50\node_modules\slimcore-3.0\bin\slimcore.node

%0A%0A%23%23 Error:%0ACalling module not available. The specified module could not be found.
\%3F\C:\Users\xz.vscode-insiders\extensions\ms-vsliveshare.vsliveshare-audio-0.1.50\node_modules\slimcore-3.0\bin\slimcore.node%0A%0A%23%23 Steps to Reproduce:%0A1.%0A2.%0A%0A||Version Data|%0A|-:|:-|%0A|extensionName|VSLS-Audio|%0A|extensionVersion|0.1.50|%0A|applicationName|VSCode|%0A|applicationVersion|1.36.0-insider|%0A|platformName|MacOS|%0A|platformVersion|10.0.16299|

hi @tixu , thank you for reporting the issue. Your logs may provide us with helpful information to investigate the issue. You can access them via the "Live Share: Export Logs" command from the command palette (ctrl + shift + p) and attach them to here.

@tixu: Thanks for reporting the issue! We recently updated our slimcore version to correspond to the version of electron in the latest VS Code Insiders. If you update your  Live Share Audio extension it should resolve this issue.  Please let me know if you're still hitting the problem after the update.


Move the list_send_failures function to backend code and add tests

User Story
As a ReportStream developer, I want to keep code in a visible location, so that it can be more easily tested and maintained.
Description/Use Case
The Admin API getsendfailures ultimately consumes the list_send_failures PLSQL function, which is responsible for returning data to be displayed. There is currently no automated testing for this function; the test for the API simply mock the database calls instead of testing against a real database. This gap can be addressed by moving the logic from a PLSQL function into Kotlin code and adding tests that utilize a test container.
Risks/Impacts/Considerations
Dev Notes

Tests should be implemented in a similar fashion to FhirFunctionIntegrationTests. See #13099 for possible test data.
See SubmitterDatabaseAccess for an example of running a database function in Kotlin code.

Acceptance Criteria

[ ] Tests are added to confirm the getsendfailures API correctly retrieves data from a test database.
[ ] The list_send_failures function is implemented in Kotlin code, replacing the PLSQL function (which should be removed).

Hey team! Please add your planning poker estimate with Zenhub @arnejduranovic @jack-h-wang @jalbinson @JessicaWNava @JFU-NAVA-PBC @jimmyfagan @mkalish @thetaurean

Please add your planning poker estimate with Zenhub @brick-green


Plug-in not working

I have a document with tasks open. I tap the side-bar icon for the plug-in, but nothing happens. I run the action command for the plug-in, nothing happens. Have tried in both edit and read modes, and with and without the heading manually created. Any thoughts?

Can you upload a minimal example which isn't work for you?

Same thing happen to me when editor Live preview is enable. If Live preview off everything work

The title of this issue should be called "Not working with Live Preview"... this looks like a live preview issue.

I also cannot get the plugin working - tried with Live Preview disabled and enabled, tried the hotkey and clicking the sidebar icon, also looked into the /src to see how everything should be named (btw it could be useful to clearly indicate in the readme that the checklist section must be labeled "Todo" since it is not a plugin setting like the "Completed" section is).
Not sure what else to try. Should I be generating a Todo file in a particular way?

Did a little debugging and found that the plugin only works when you switch to Legacy Editor mode. It doesn't work with the new editor with Live Preview.

With legacy Editor Mode = On, it works again, but there is no such option for mobile (iPhone) Obsidian.
I appreciate your help in solving this!!!

The error I get

Is this likely to get updated to work with current version?

or at this point I guess the answer is to use the 'Tasks' plugin


Make a new release (2.1 or 2.0.1)

Could you make a release from master, as it contains a lot of bugfixes?

Any idea why a release might be blocked? It'd be great to have a new release :)

Should this be closed now?

Andddd closed!


operator: update golden files

Currently operator tests use a snapshot of the manifests for tests to
avoid churn. Update these to meet current state of the world.
All changes are autogenerated
Please provide a description of this PR:

@howardjohn: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-security-multicluster_istio
73b1d6674826b7b9e0a5046768b5aec4fb36c69f
link
true
/test integ-security-multicluster_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


Exclude content/folder from sitemap/build

Hi, is it possible to exclude a certain folder from being built? Specifically, I have a content/drafts section which I don't want to end up in the sitemap etc.
I could move them out of content but then I can't preview them. All of the articles are marked as drafts.

Please use http://discuss.gohugo.io/ for questions.


ETCD - 2.1.0 - Getting etcdhttp: unexpected error: etcdserver: request timed out

Greetings,
Configured CoreOS with ETCD2 - single server setup (for now)
############################################################################
cloud-config.yml

#cloud-config

---
write_files:
- path: /opt/bin/waiter.sh
  owner: root
  content: |
    #! /usr/bin/bash
    until curl http://<IP_ADDRESS>:4001/v2/machines; do sleep 2; done

hostname: wwserver194.alphalocal.net
ssh_authorized_keys:
    - ssh-rsa AAAABBBBB.....
coreos:

 etcd:
  name: wwserver194
  addr: <IP_ADDRESS>:4001
  peer-addr: <IP_ADDRESS>:7001

 fleet:
  public-ip: <IP_ADDRESS>
  metadata: role=master,region=ny,location=ny1,public_ip=<IP_ADDRESS>,host=wwserver194

 units:

  - name: etcd-waiter.service
    command: start
    content: |
      [Unit]
      Description=etcd waiter
      Wants=network-online.target
      Wants=etcd.service
      After=etcd.service
      After=network-online.target
      Before=flannel.service

      [Service]
      ExecStartPre=/usr/bin/chmod +x /opt/bin/waiter.sh
      ExecStart=/usr/bin/bash /opt/bin/waiter.sh
      RemainAfterExit=true
      Type=oneshot

  - name: flannel-build.service
    command: start
    content: |
      [Unit]
      #After=docker.service
      Before=flannel.service

      [Service]
      ExecStartPre=-/usr/bin/git clone https://github.com/someuser/flannel /opt/flannel
      ExecStart=/usr/bin/echo "flannel has been built in /opt/flannel"
      RemainAfterExit=yes
      Type=oneshot

  - name: flannel.service
    command: start
    content: |
      [Unit]
      Requires=etcd.service
      Requires=network-online.target
      ConditionFileIsExecutable=/opt/flannel/bin/flanneld
      After=etcd.service

      [Service]
      ExecStartPre=-/bin/bash -c "until /usr/bin/etcdctl set /coreos.com/network/config '{"Network":"<IP_ADDRESS>/8","SubnetLen":20,"SubnetMin":"<IP_ADDRESS>","SubnetMax":"<IP_ADDRESS>","Backend":{"Type":"vxlan","Port":7890}}'; do echo \"Waiting for etcd to become available...\"; sleep 5; done"
      ExecStart=/opt/flannel/bin/flanneld -ip-masq=true -iface=ens192
      ExecStartPost=-/bin/bash -c "until [ -e /run/flannel/subnet.env ]; do echo \"Waiting for write.\"; sleep 3; done"
      Restart=on-failure
      TimeoutSec=10
      RestartSec=5

      [Install]
      WantedBy=multi-user.target

  - name: docker.service
    command: start
    content: |
      [Unit]
      Description=Docker Application Container Engine
      Documentation=http://docs.docker.io
      Requires=flannel.service
      After=flannel.service
      ConditionFileNotEmpty=/run/flannel/subnet.env

      [Service]
      EnvironmentFile=/run/flannel/subnet.env
      LimitNOFILE=1048576
      LimitNPROC=1048576
      ExecStart=/usr/bin/docker -d --bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU}
      Restart=on-failure
      RestartSec=5

      [Install]
      WantedBy=multi-user.target

  - name: kube-apiserver.service
    command: start
    content: |
        [Unit]
        Description=Kubernetes API Server
        Documentation=https://github.com/GoogleCloudPlatform/kubernetes
        Requires=etcd.service
        After=etcd.service

        [Service]
        ExecStartPre=-/usr/bin/mkdir -p /opt/kubernetes/bin
        ExecStartPre=-/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.16.2/bin/linux/amd64/kube-apiserver
        ExecStartPre=-/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.16.2/bin/linux/amd64/kubectl
        ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-apiserver
        ExecStartPre=/usr/bin/chmod +x /opt/bin/kubectl
        ExecStart=/opt/bin/kube-apiserver \
        --address=<IP_ADDRESS> \
        --portal_net=<IP_ADDRESS>/16 \
        --port=8080 \
        --etcd_servers=http://<IP_ADDRESS>:4001 \
        --public_address_override=<IP_ADDRESS> \
        --logtostderr=true
        Restart=always
        RestartSec=10

  - name: kube-controller-manager.service
    command: start
    content: |
        [Unit]
        Description=Kubernetes Controller Manager
        Documentation=https://github.com/GoogleCloudPlatform/kubernetes
        Requires=kube-apiserver.service
        After=kube-apiserver.service

        [Service]
        ExecStartPre=-/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.16.2/bin/linux/amd64/kube-controller-manager
        ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-controller-manager
        ExecStart=/opt/bin/kube-controller-manager \
        --machines=<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS> \
        --master=<IP_ADDRESS>:8080 \
        --logtostderr=true
        Restart=always
        RestartSec=10

  - name: kube-scheduler.service
    command: start
    content: |
        [Unit]
        Description=Kubernetes Scheduler
        Documentation=https://github.com/GoogleCloudPlatform/kubernetes
        Requires=kube-apiserver.service
        After=kube-apiserver.service

        [Service]
        ExecStartPre=-/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.16.2/bin/linux/amd64/kube-scheduler
        ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-scheduler
        ExecStart=/opt/bin/kube-scheduler --master=<IP_ADDRESS>:8080
        Restart=always
        RestartSec=10

  - name: kube-proxy.service
    command: start
    content: |
        [Unit]
        Description=Kubernetes Proxy
        Documentation=https://github.com/GoogleCloudPlatform/kubernetes
        Requires=etcd.service
        After=etcd.service

        [Service]
        ExecStartPre=-/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.16.2/bin/linux/amd64/kube-proxy
        ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-proxy
        ExecStart=/opt/bin/kube-proxy \
        --master=<IP_ADDRESS>:8080 \
        --logtostderr=true
        Restart=always
        RestartSec=10
  - name: kube-kubelet.service
    command: start
    content: |
        [Unit]
        Description=Kubernetes Kubelet
        Documentation=https://github.com/GoogleCloudPlatform/kubernetes
        Requires=etcd.service
        After=etcd.service

        [Service]
        ExecStartPre=-/usr/bin/mkdir -p /etc/kubernetes/manifests
        ExecStartPre=-/usr/bin/wget -N -P /opt/bin https://storage.googleapis.com/kubernetes-release/release/v0.16.2/bin/linux/amd64/kubelet
        ExecStartPre=/usr/bin/chmod +x /opt/bin/kubelet
        ExecStart=/opt/bin/kubelet \
        --address=<IP_ADDRESS> \
        --port=10250 \
        --cadvisor_port=4194 \
        --config=/etc/kubernetes/manifests \
        --hostname_override=<IP_ADDRESS> \
        --api_servers=<IP_ADDRESS>:8080 \
        --allow_privileged=true \
        --cluster_dns=<IP_ADDRESS> \
        --cluster_domain=kubedomain.local \
        --logtostderr=true
        Restart=always
        RestartSec=10

  - name: docker-cache.service
    command: start
    content: |
        [Unit]
        Description=Docker cache proxy
        Requires=early-docker.service
        After=early-docker.service
        Before=early-docker.target

        [Service]
        Restart=always
        TimeoutStartSec=0
        RestartSec=5
        Environment="TMPDIR=/var/tmp/"
        Environment="DOCKER_HOST=unix:///var/run/early-docker.sock"
        ExecStartPre=-/usr/bin/docker kill docker-registry
        ExecStartPre=-/usr/bin/docker rm docker-registry
        ExecStartPre=/usr/bin/docker pull quay.io/devops/docker-registry:latest
        # GUNICORN_OPTS is an workaround for
        # https://github.com/docker/docker-registry/issues/892
        ExecStart=/usr/bin/docker run --rm --net host --name docker-registry \
            -e STANDALONE=false \
            -e GUNICORN_OPTS=[--preload] \
            -e MIRROR_SOURCE=https://registry-1.docker.io \
            -e MIRROR_SOURCE_INDEX=https://index.docker.io \
            -e MIRROR_TAGS_CACHE_TTL=1800 \
            quay.io/devops/docker-registry:latest

  - name: etcd.service
    command: start
  - name: fleet.service
    command: start
  - name: settimezone.service
    command: start
    content: |
      [Unit]
      Description=Set the timezone
      [Service]
      ExecStart=/usr/bin/timedatectl set-timezone UTC
      RemainAfterExit=yes
      Type=oneshot

  - name: docker-tcp.socket
    command: start
    enable: true
    content: |
      [Unit]
      Description=Docker Socket for the API

      [Socket]
      ListenStream=2375
      BindIPv6Only=both
      Service=docker.service

      [Install]
      WantedBy=sockets.target

  - name: kube-register.service
    command: start
    content: |
        [Unit]
        Description=Kubernetes Registration Service
        Documentation=https://github.com/kelseyhightower/kube-register
        Requires=kube-apiserver.service
        After=kube-apiserver.service
        Requires=fleet.service
        After=fleet.service
        [Service]
        ExecStartPre=-/usr/bin/git clone https://github.com/someuser/kube-register /tmp/kube-register
        ExecStartPre=-/bin/cp /tmp/kube-register/kube-register /opt/bin/
        #ExecStartPre=-/usr/bin/wget -N -P /opt/bin https://github.com/someuser/kube-register/raw/master/kube-register
        ExecStartPre=/usr/bin/chmod +x /opt/bin/kube-register
        ExecStart=/opt/bin/kube-register \
        --metadata=role=node \
        --fleet-endpoint=unix:///var/run/fleet.sock \
        --healthz-port=10248 \
        --api-endpoint=http://<IP_ADDRESS>:8080
        Restart=always
        RestartSec=10

write_files:
    -  path: /etc/systemd/network/ens192.network
       permissions: 0644
       owner: root
       content: |
         [Match]
         Name=ens192

         [Network]
         Address=<IP_ADDRESS>/24
         Gateway=<IP_ADDRESS>

         DNS=<IP_ADDRESS>
         DNS=<IP_ADDRESS>

    -  path: /etc/systemd/network/ens224.network
       permissions: 0644
       owner: root
       content: |
         [Match]
         Name=ens224

         [Network]
         Address=<IP_ADDRESS>/24

write_files:
   - path: /etc/iptables.rules
     permissions: 0644
     content: |
      *filter
       :INPUT DROP [0:0]
       :FORWARD ACCEPT [0:0]
       :OUTPUT ACCEPT [76:7696]
       -A INPUT -p tcp -m conntrack --ctstate NEW -m multiport --dports 22 -j ACCEPT
       -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
       -A INPUT -i lo -j ACCEPT
       -A INPUT -p icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
       -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
       -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
       -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
       -A INPUT -p tcp -m tcp --dport 4001 -j ACCEPT
       -A INPUT -p udp -m udp --dport 4001 -j ACCEPT
       -A INPUT -p tcp -m tcp --dport 7001 -j ACCEPT
       -A INPUT -p udp -m udp --dport 7001 -j ACCEPT
       COMMIT

write_files:
   - path: /etc/ntp.conf
     permissions: 0644
     content: |
        server ntp.alphalocal.com

write_files:
  - path: /etc/ssh/sshd_config
    permissions: 0600
    owner: root:root
    content: |
      # Use most defaults for sshd configuration.
      # UsePrivilegeSeparation sandbox
      Subsystem sftp internal-sftp

      PermitRootLogin no
      AllowUsers coreuser core
      PasswordAuthentication no
      ChallengeResponseAuthentication no
      ListenAddress <IP_ADDRESS>

write_files:
  - path: /etc/environment
    permissions: 0644
    content: |
      COREOS_PUBLIC_IPV4=<IP_ADDRESS>
      COREOS_PRIVATE_IPV4=<IP_ADDRESS>

write_files:
  - path: /etc/conf.d/nfs
    permissions: 0644
    content: |
      OPTS_RPC_MOUNTD=""

users:
  - name: coreuser
    passwd: AAAAAAAAAABBBBBBB....
    groups:
      - sudo
      - docker
      - wheel
      - portage
      - core
    ssh-authorized-keys:
      - ssh-rsa AAAAB3N...

############################################################################
Disabled etcd.service
Enabled etcd2.service
Trying to start etcd2, getting errors:
# journalctl -u etcd2 -r -l

May 12 20:03:47 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:47 etcdhttp: unexpected error: etcdserver: request timed out
May 12 20:03:44 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:44 etcdserver: publish error: etcdserver: request timed out
May 12 20:03:41 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:41 etcdhttp: unexpected error: etcdserver: request timed out
May 12 20:03:41 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:41 etcdhttp: unexpected error: etcdserver: request timed out
May 12 20:03:41 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:41 etcdhttp: unexpected error: etcdserver: request timed out
May 12 20:03:39 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:39 etcdserver: publish error: etcdserver: request timed out
May 12 20:03:35 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:35 etcdhttp: unexpected error: etcdserver: request timed out
May 12 20:03:35 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:35 etcdhttp: unexpected error: etcdserver: request timed out
May 12 20:03:35 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:35 etcdhttp: unexpected error: etcdserver: request timed out
May 12 20:03:34 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:34 etcdserver: publish error: etcdserver: request timed out
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 raft: newRaft 8e9b3675168fc6ef [peers: [], term: 0, commit: 0, applied: 0, lastindex: 2, lastterm: 1]
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 raft: 8e9b3675168fc6ef became follower at term 0
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 etcdserver: restart member 8e9b3675168fc6ef in cluster ca7c97a623bcfc59 at commit index 0
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 etcdserver: advertise client URLs = http://<IP_ADDRESS>:2379,http://<IP_ADDRESS>:4001
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 etcdserver: snapshot count = 10000
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 etcdserver: election = 1000ms
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 etcdserver: heartbeat = 100ms
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 etcdserver: member dir = wwserver194.alphalocal.com.etcd/member
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 etcdserver: data dir = wwserver194.alphalocal.com.etcd
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 etcdserver: name = wwserver194.alphalocal.com
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 etcdserver: datadir is valid for the 2.0.1 format
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 etcd: listening for client requests on http://<IP_ADDRESS>:4001
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 etcd: listening for client requests on http://<IP_ADDRESS>:2379
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 etcd: listening for peers on http://<IP_ADDRESS>:2380
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 etcd: already initialized as member before, starting as etcd member...
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 etcd: no data-dir provided, using default data-dir ./wwserver194.alphalocal.com.etcd
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 netutil: Resolving wwserver194.alphalocal.com:4001 to <IP_ADDRESS>:4001
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 netutil: Resolving wwserver194.alphalocal.com:2379 to <IP_ADDRESS>:2379
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 netutil: Resolving wwserver194.alphalocal.com:2380 to <IP_ADDRESS>:2380
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 netutil: Resolving wwserver194.alphalocal.com:2380 to <IP_ADDRESS>:2380
May 12 20:03:29 wwserver194.alphalocal.com systemd[1]: Starting etcd 2...
May 12 20:03:29 wwserver194.alphalocal.com systemd[1]: Started etcd 2.

############################################################################
wwserver194 coreos-install # systemctl -l status etcd2
● etcd2.service - etcd 2
   Loaded: loaded (/etc/systemd/system/etcd2.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2015-05-12 20:03:29 UTC; 9min ago
     Docs: https://github.com/coreos/etcd/
 Main PID: 1627 (etcd2)
   Memory: 2.3M
   CGroup: /system.slice/etcd2.service
           └─1627 /opt/bin/etcd2

May 12 20:12:44 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:12:44 etcdhttp: unexpected error: etcdserver: request timed out
May 12 20:12:45 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:12:45 etcdhttp: unexpected error: etcdserver: request timed out
May 12 20:12:47 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:12:47 etcdhttp: unexpected error: etcdserver: request timed out
May 12 20:12:49 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:12:49 etcdserver: publish error: etcdserver: request timed out
May 12 20:12:53 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:12:53 etcdhttp: unexpected error: etcdserver: request timed out
May 12 20:12:54 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:12:54 etcdserver: publish error: etcdserver: request timed out
May 12 20:12:55 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:12:55 etcdhttp: unexpected error: etcdserver: request timed out
May 12 20:12:55 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:12:55 etcdhttp: unexpected error: etcdserver: request timed out
May 12 20:12:59 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:12:59 etcdserver: publish error: etcdserver: request timed out
May 12 20:12:59 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:12:59 etcdhttp: unexpected error: etcdserver: request timed out

############################################################################
# ss -lnt
State      Recv-Q Send-Q                                                Local Address:Port                                                               Peer Address:Port
LISTEN     0      128                                                     <IP_ADDRESS>:7080                                                                          *:*
LISTEN     0      128                                                               *:5000                                                                          *:*
LISTEN     0      128                                                     <IP_ADDRESS>:6443                                                                          *:*
LISTEN     0      128                                                       <IP_ADDRESS>:10251                                                                         *:*
LISTEN     0      128                                                               *:5355                                                                          *:*
LISTEN     0      128                                                       <IP_ADDRESS>:10252                                                                         *:*
LISTEN     0      128                                                     <IP_ADDRESS>:2380                                                                          *:*
LISTEN     0      128                                                              :::8080                                                                         :::*
LISTEN     0      128                                                              :::22                                                                           :::*
LISTEN     0      128                                                              :::4001                                                                         :::*
LISTEN     0      128                                                              :::2375                                                                         :::*
LISTEN     0      128                                                              :::2379                                                                         :::*
LISTEN     0      128                                                              :::5355                                                                         :::*
rsomtapae194 coreos-install #

sorry, the markdowns  messed up the cloud-config entries above

@akamalov I got this reproduced. And I think it is because you killed etcd too fast even before it actually applied its first few initial commits or probably your disk is too slow.
I do not think this would happen in reality often with a correct environment...

@akamalov We will probably fatal when you restart an etcd cluster and its previous bootstrap failed due to too fast killing.

Thanks for prompt reply. I restarted the cluster several times, I can assure that I didn't kill it. So, what would be your suggestion? I can't bring up my etcd cluster...

@akamalov From the log, that single member cluster only accepted two commands before it dies (the two commands are internal initialization commands). So you probably can simple remove its data-dir and rebuild your etcd cluster.

I restarted the cluster several times, I can assure that I didn't kill it.

Are you sure you did this for the same etcd cluster? It is not what I saw from the log you gave me.

May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 raft: newRaft 8e9b3675168fc6ef [peers: [], term: 0, commit: 0, applied: 0, lastindex: 2, lastterm: 1]
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 raft: 8e9b3675168fc6ef became follower at term 0
May 12 20:03:29 wwserver194.alphalocal.com etcd2[1627]: 2015/05/12 20:03:29 etcdserver: restart member 8e9b3675168fc6ef in cluster ca7c97a623bcfc59 at commit index 0

You can see here, you member only has two commands.

Thanks again for reply. This is the same cluster with etcd 2.1.0. Directory /var/lib/etcd2 contains no files or directories.
wwserver194  coreos-install # cd /var/lib/etcd2/
wwserver194 etcd2 # ls -al
total 8
drwxr-xr-x  2 etcd etcd 4096 May 12 17:15 .
drwxr-xr-x 21 root root 4096 May 12 17:22 ..
wwserver194 etcd2 #

wwserver194 etcd2 # etcdctl ls
Error:  501: All the given peers are not reachable (Tried to connect to each peer twice and failed) [0]
wwserver194 etcd2 #

@akamalov
OK. So your data-dir is not /var/lib/etcd2, but wwserver194.alphalocal.com.etcd.
At this point, I want to help you confirm your root problem. Can you tar your data-dir at wwserver194.alphalocal.com.etcd and send it to me via email (xiang.li@coreos.com)?
Thanks.

Sent

@akamalov Thanks. will take a look soon.

Went ahead and configured "ETCD_DATA_DIR=/var/lib/etcd2/" and restarted etcd2. Here is what I see in the log:
May 14 15:20:22 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:22 raft: 55842dba66a281e5 is starting a new election at term 3810
May 14 15:20:22 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:22 etcdhttp: unexpected error: etcdserver: request timed out
May 14 15:20:20 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:20 raft: 55842dba66a281e5 [logterm: 1, index: 3] sent vote request to 350bae399b596f80 at term 3810
May 14 15:20:20 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:20 raft: 55842dba66a281e5 [logterm: 1, index: 3] sent vote request to ecd8984d4fe49759 at term 3810
May 14 15:20:20 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:20 raft: 55842dba66a281e5 received vote from 55842dba66a281e5 at term 3810
May 14 15:20:20 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:20 raft: 55842dba66a281e5 became candidate at term 3810
May 14 15:20:20 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:20 raft: 55842dba66a281e5 is starting a new election at term 3809
May 14 15:20:19 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:19 raft: 55842dba66a281e5 [logterm: 1, index: 3] sent vote request to ecd8984d4fe49759 at term 3809
May 14 15:20:19 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:19 raft: 55842dba66a281e5 [logterm: 1, index: 3] sent vote request to 350bae399b596f80 at term 3809
May 14 15:20:19 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:19 raft: 55842dba66a281e5 received vote from 55842dba66a281e5 at term 3809
May 14 15:20:19 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:19 raft: 55842dba66a281e5 became candidate at term 3809
May 14 15:20:19 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:19 raft: 55842dba66a281e5 is starting a new election at term 3808
May 14 15:20:18 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:18 etcdserver: publish error: etcdserver: request timed out
May 14 15:20:16 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:16 raft: 55842dba66a281e5 [logterm: 1, index: 3] sent vote request to ecd8984d4fe49759 at term 3808
May 14 15:20:16 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:16 raft: 55842dba66a281e5 [logterm: 1, index: 3] sent vote request to 350bae399b596f80 at term 3808
May 14 15:20:16 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:16 raft: 55842dba66a281e5 received vote from 55842dba66a281e5 at term 3808
May 14 15:20:16 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:16 raft: 55842dba66a281e5 became candidate at term 3808
May 14 15:20:16 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:16 raft: 55842dba66a281e5 is starting a new election at term 3807
May 14 15:20:15 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:15 sender: the connection with 350bae399b596f80 became inactive
May 14 15:20:15 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:15 sender: error posting to 350bae399b596f80: dial tcp <IP_ADDRESS>:2380: connection refused
May 14 15:20:15 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:15 sender: the connection with ecd8984d4fe49759 became inactive
May 14 15:20:15 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:15 sender: error posting to ecd8984d4fe49759: dial tcp <IP_ADDRESS>:2380: connection refused
May 14 15:20:14 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:14 raft: 55842dba66a281e5 [logterm: 1, index: 3] sent vote request to 350bae399b596f80 at term 3807
May 14 15:20:14 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:14 raft: 55842dba66a281e5 [logterm: 1, index: 3] sent vote request to ecd8984d4fe49759 at term 3807
May 14 15:20:14 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:14 raft: 55842dba66a281e5 received vote from 55842dba66a281e5 at term 3807
May 14 15:20:14 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:14 raft: 55842dba66a281e5 became candidate at term 3807
May 14 15:20:14 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:14 raft: 55842dba66a281e5 is starting a new election at term 3806
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 etcdserver: added member ecd8984d4fe49759 [http://<IP_ADDRESS>:2380] to cluster b931d2ff30365288
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 etcdserver: added local member 55842dba66a281e5 [http://<IP_ADDRESS>:2380] to cluster b931d2ff30365288
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 etcdserver: added member 350bae399b596f80 [http://<IP_ADDRESS>:2380] to cluster b931d2ff30365288
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 raft: newRaft 55842dba66a281e5 [peers: [], term: 3806, commit: 3, applied: 0, lastindex: 3, lastterm: 1]
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 raft: 55842dba66a281e5 became follower at term 3806
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 etcdserver: restart member 55842dba66a281e5 in cluster b931d2ff30365288 at commit index 3
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 etcdserver: advertise client URLs = http://<IP_ADDRESS>:2379,http://<IP_ADDRESS>:4001
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 etcdserver: snapshot count = 10000
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 etcdserver: election = 1000ms
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 etcdserver: heartbeat = 100ms
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 etcdserver: member dir = /var/lib/etcd2/member
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 etcdserver: data dir = /var/lib/etcd2/
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 etcdserver: name = rsomtapae194
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 etcdserver: datadir is valid for the 2.0.1 format
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 etcd: listening for client requests on http://<IP_ADDRESS>:4001
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 etcd: listening for client requests on http://<IP_ADDRESS>:2379
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 etcd: listening for peers on http://<IP_ADDRESS>:7001
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 etcd: listening for peers on http://<IP_ADDRESS>:2380
May 14 15:20:13 rsomtapae194.bnymellon.net etcd2[738]: 2015/05/14 15:20:13 etcd: already initialized as member before, starting as etcd member...
May 14 15:20:13 rsomtapae194.bnymellon.net systemd[1]: Starting etcd 2...
May 14 15:20:13 rsomtapae194.bnymellon.net systemd[1]: Started etcd 2.

The content of the /var/lib/etcd2 is the following:
rsomtapae194 coreos-install # cd /var/lib/etcd2
rsomtapae194 etcd2 # ls
member
rsomtapae194 etcd2 # ls -al
total 12
drwxr-xr-x  3 etcd etcd 4096 May 14 15:20 .
drwxr-xr-x 21 root root 4096 May 12 17:22 ..
drwx------  4 root root 4096 May 14 15:20 member
rsomtapae194 etcd2 # ls -al member/
total 16
drwx------ 4 root root 4096 May 14 15:20 .
drwxr-xr-x 3 etcd etcd 4096 May 14 15:20 ..
drwx------ 2 root root 4096 May 14 13:52 snap
drwx------ 2 root root 4096 May 14 13:52 wal
rsomtapae194 etcd2 #

@akamalov You bootstrapped a 3 member cluster in the last case. But you only started one member. It will just keep on voting until you start at least 2 of them.
see
error posting to ecd8984d4fe49759: dial tcp <IP_ADDRESS>:2380: connection refused

sender: error posting to 350bae399b596f80: dial tcp <IP_ADDRESS>:2380: connection refused

excellent! Let me try to go ahead and add another one

Forgot to mention that I already had a secondary server (I am bootstrapping a third one).
Here is the excerpt from user_data as pertains to etcd2:
- name: etcd2.service
    enable: true
    command: start
    content: |
      [Unit]
      After=download-etcd2.service
      Description=etcd 2
      Documentation=https://github.com/coreos/etcd/
      [Service]
      Environment="ETCD_NAME=rsomtapae195"
      Environment="ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster1"
      Environment="ETCD_DATA_DIR=/var/lib/etcd2/"
      Environment="ETCD_INITIAL_ADVERTISE_PEER_URLS=http://<IP_ADDRESS>:2380"
      Environment="ETCD_LISTEN_PEER_URLS=http://<IP_ADDRESS>:2380,http://<IP_ADDRESS>:7001"
      Environment="ETCD_LISTEN_CLIENT_URLS=http://<IP_ADDRESS>:2379,http://<IP_ADDRESS>:4001"
      Environment="ETCD_ADVERTISE_CLIENT_URLS=http://<IP_ADDRESS>:2379,http://<IP_ADDRESS>:4001"
      Environment="ETCD_MAX_WALS=0"
      Environment="ETCD_INITIAL_CLUSTER_STATE=new"
      Environment="ETCD_INITIAL_CLUSTER="rsomtapae194=http://<IP_ADDRESS>:2380,rsomtapae195=http://<IP_ADDRESS>:2380,rsomtapae196=http://<IP_ADDRESS>:2380"

Excellent! Thank you so much for  looking into it. I will close this issue. Thanks again!

So how did you fix it eventually? By adding the 3rd one?

Correct, required 3, so you need to have 3 when the cluster quorum gets
completed.
On Tue, Jul 14, 2015 at 9:16 PM, Tony<EMAIL_ADDRESS>wrote:

So how did you fix it eventually? By adding the 3rd one?
—
Reply to this email directly or view it on GitHub
https://github.com/coreos/etcd/issues/2818#issuecomment-121444916.

The 3 etcd nodes run well in my env, but it seems that hm9000 can NOT always get info from etcd correctly. Anyway, thanks a lot!

@FonyLi If you know any strange behavior on etcd cluster clearly, you could open an issue for discussion.

@yichengq
Thanks. Let me confirm with CF community first, then open an issue if necessary.
I'm working on a cloud foundry (CF) project currently.
In CF release 210, multi etcd nodes (3 instances in a single zone) can't  work well with other components.
But from akamalov's post, we can see that 3 etcd nodes can work properly.
So I think the problem I found is in CF but not in etcd. I've reported it to CF community. Let's just wait for their response and decide what to do next.
BTW, here is my report to CF community:
"
We installed CF210 recently (in single zone).
Single etcd instance(instance number is 1) runs very well.
But multi etcd instances(instance number is 3) don't work well in single zone.
And from the release Notes on http://bosh.io/releases/github.com/cloudfoundry/cf-release?version=210, there is one term I’m confused about:
“Upgrade etcd server to 2.0.1 details
Should be run as 1 node (for small deployments) or 3 nodes spread across zones (for HA)”
May I ask it means:
“1. Should be run as 1 node (but can NOT be run as 3 nodes) in environment with only one zone.
2. Should be run as 3 nodes in environment with more than one zones. should spread them across zones.”
Or means:
“1. can be run as 1 node, (and can also be run as 3 nodes)  in environment with only one zone.
2. Should be run as 3 nodes in environment with more than one zones. should spread them across zones.”
"
Thanks

@xiang90 : Could you please delete the comment as of May 14 ? Accidentally data was not scrabbed.

@akamalov Sorry about that. Deleted.

@xiang90 Thank you very much indeed.


Compression query

Is there a way to stop FilePond to zip exe files before uploading or the better way would be to show a progress indicator for zipping?
Thanks

FilePond doesn't zip .exe files, my guess is that this is a security feature of your server.


added write_to_activity_viewer_json

not sure if we are using 3.7 everywhere w/r/t f strings.. but merging, can fix if needed


Add docs, fix some doc complaints

Fixes / adds docs with Latex equations
Adds some type restrictions to RTESolver_kernels

bors r+


Menu entry for preferences not working

Now this hiding the icon of preferences system in any language that the messenger is

Indentation changed, causing the entire file to change. Fix the indentation and only modify what is needed.

Sorry, I'll just put the lines that have been modified, the original document

I'm sorry, but you have to attempt to make minimal local changes. The entire file has changed, making it both hard to understand what changed and cumbersome to fix as I would have to manually restore the rest of the file to it's original format.


Examples?

This class could use some documentation in how to use it. The API isn't all that hard to understand, but I don't get the content info restoring between launches. What is the value of it?

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

ID: 5a89e182-6fc5-013e-9c50-5216fc0ebd87
Version Independent ID: 5d93aa6b-dde7-22fd-3fc0-6f837c80a914
Content: UserActivityContentInfo Class (Windows.ApplicationModel.UserActivities) - Windows UWP applications
Content Source: https://cpubwin.visualstudio.com/DefaultCollection/windows-uwp/_git/winrt-api-build?path=%2fwinrt-api-build%2fwindows.applicationmodel.useractivities.useractivitycontentinfo.yml&version=GBlive&_a=contents
Product: uwp
Technology: winrt-reference
Git Login: lastnameholiu
Microsoft Alias: alholiu

Thanks for taking the time to let us know about this. Due to the sheer volume of feedback in our repo, we're currently prioritizing new Issues. If you believe your feedback is still actionable, let us know either directly in this thread or by filing a new Issue and we’ll work to incorporate your suggestions. Though this issue will be marked as Closed, this issue is still being tracked internally and you're welcome to leave a comment with more details. Thank you again!


Omit base_path from publishing_api request bodies

This field is deprecated, soon to be rejected.
I couldn't see a clean alternative to duplicating the implementation.
This should be a major version bump as the API for the test helpers has changed in an incompatible way.

@jamiecobbett: i'd prefer we continue including ContentItemHelpers, so that future modifications to content item JSON schema remain easy to incorporate:

ContentItemHelpers#content_item_for_base_path would not return a base_path in the hash,
GdsApi::TestHelpers::PublishingApi would include that behaviour as is, and
GdsApi::TestHelpers::ContentStore would override that method:

def content_item_for_base_path(base_path)
  super.merge({ base_path: base_path })
end

@vinayvinay top idea! Rebased.


Html in tab

Pull Request Test Coverage Report for Build 9

1 of 2 (50.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-9.1%) to 84.211%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/VueTabsWithActiveLine.vue
1
2
50.0%

Totals

Change from base Build 7:
-9.1%

Covered Lines:
12

Relevant Lines:
13

💛  - Coveralls


Translation Support Question

@wing-it
We have volunteer working on French and Russian translations for the GURPS character sheet. They use a professional toolset to translate the Json files directly. They would like to talk to someone who is a crowdin admin that could help using those translated files. Would you able to help with that?
Thanks,
Ken

@MadCoder253 Just upload them in a PR.
Also, use Weblate instead of Crowdin :)

Just upload them in a PR.

Where?
Roll20 accepts only translations through CrowdIn for character sheets, which is the whole reason this issue was created.

@Anduh Unapologetically.
You can make a Crowdin account and upload them yourself. Crowdin itself isn't actually broken in that sense.
Without it we have a true control-group for of how many people want to translate a lot of strings using it, and the answer is nobody.
The translator has different preferences too.
I'll be right here in solidarity recommending Weblate when you get done reading the Crowdin terms and conditions, etc. :)
Without being able to upload files from upstream, and mishandling fuzzy strings we get

Sheet translations submitted outside of Crowdin will not be accepted and/or will be overwritten by Crowdin.

as an exercise in how to use Crowdin to prevent translations to its capacity.
Happy to help.

It's possible to upload .json files to CrowdIn directly, but requires the project manager(Roll20) to allow Offline translations-option, for ordinary translators to be able to do this.
I suggest you make a Help Center ticket with this info, or you might wait for a long time for them to spot this issue.

Thank you @Anduh I'll forward this information!
Ken

The person doing the translations hasn't heard from anyone, they wanted to talk with someone about methods for getting translated files into crowdin. They contacted each of the admin's identified by crowdin and submitted a ticket but no one replied.

@nmbradley Would you know who to contact for asking questions for Crowdin? The translator wants the ability to submit a translated file instead of using the interface.

I'm not directly familiar with how the CrowdIn integration is managed on CrowdIn's side, but If you provide the file here and make it clear what sheet it is for, and which language, I can upload it.

@nmbradley You can't sublicense the work of someone else.

@comradekingu I have no idea what this means or how it's relevant to this conversation.

Uploading the work to Crowdin means accepting the terms on Crowdin on part of the person doing it, and that must be a person that holds the rights to the work.
It doesn't meet "subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software."

That's certainly an inspired reading of the terms of service and MIT license. I don't think you're approaching this conversation in good faith, given you seem to be concern trolling a bunch of CrowdIn related conversations while contributing to a competitor product, but I will run this by our legal team to ensure that we're acting in compliance. Thanks for the advice.

My reasons for raising actual concerns with the usability and terms of Crowdin is derived form having used the product, and having read every single terms and conditions document it has to offer, before it all expands into the services it uses, sells data to or buys from. I am also a Crowdin-contributor. As a matter unrelated to me or my prior suggesting for the translator to do it, anyone else needs permission or rights.
https://tldrlegal.com/license/mit-license

You must include the copyright notice in all copies or substantial uses of the work.Include LicenseYou must include the license notice in all copies or substantial uses of the work.

https://writing.kemitchell.com/2016/09/21/MIT-License-Line-by-Line.html

The MIT License captures this idea by giving a license “to any person obtaining a copy of … the Software”. As we’ll see later, there is also a condition to receiving this license that ensures others will learn about their permission, too.

Anyone who might get a sublicense under the MIT License will probably end up with a copy of the license telling them they have a direct license, too.

If you give someone a copy of the software, you need to include the license text and any copyright notice.

Everyone who gets a copy should get a copy of those licensor protections, too.

If you don’t follow The MIT License’s conditions, you don’t get the permission the license offers. So failing to do what the conditions say at least theoretically leaves you open to a lawsuit, probably a copyright lawsuit.

Its protections are "for the licensor against lawsuits by licensees".

@nmbradley
It's possible to upload .json files to CrowdIn directly, but requires the project manager(Roll20) to allow Offline translations-option, for ordinary translators to be able to do this. Could you msg this forward and see if this could be enabled? This would resolve this "can't submit .json-files"-situation.

Yes, If it's possible. The person making the translations would love to talk with someone about the ability to upload the files. If it's something Roll20 can't support, please let me know and I'll close this ticket.

@nmbradley said the following on another place:

Long and short is, there was a historical reason we didn't allow json uploads, but that concern might now be resolved. We're doing some investigation.

old, closing


Support hitSlop prop for pressable icons. (?)

E.g., if I'm using Material Design, icons should be 24dp square, while touch targets should be at least 48dp square.
Icon components already take an onPress prop.
Without being able to give the icon component a hitSlop prop of 12dp on all sides (or any value), I have to wrap the component with, e.g., a Pressable or a TouchableHighlight component that I can pass hitSlop to, along with onPress. It's mildly cumbersome, and I'm not using Icon.Button because its interface ("A convenience component for creating buttons with [text, and] an icon on the left side") isn't really what I'm looking for (it comes with some default color and layout styles that go beyond the idea of just a "pressable icon").
Since icon components are implemented with Text, and Text components don't take a hitSlop prop, possibly the answer is that...React Native should either remove Text's onPress prop, or let Text take hitSlop. 🙂
But I wanted to post this here in case the maintainers wanted to give their thoughts on the question.

Without being able to give the icon component a hitSlop prop of 24dp (or any value), I have to wrap the component with, e.g., a Pressable or a TouchableHighlight component that I can pass hitSlop to, along with onPress

And perhaps I should just do this. I could make a convenience component of my own, that does this.

Without being able to give the icon component a hitSlop prop of 24dp (or any value), I have to wrap the component with, e.g., a Pressable or a TouchableHighlight component that I can pass hitSlop to, along with onPress

And perhaps I should just do this. I could make a convenience component of my own, that does this.

I'd say this is true for other Pressable props too. I'm trying to add disableFeedback to the icon and that doesn't work either.

We’ve just released a major new version with significant changes and improvements. If you’re still experiencing this issue after upgrading, please open a new issue with updated details. We're closing all the very old issues to get on top of things. Thanks for your patience!


DSA <IP_ADDRESS> Arrays: Range Queries

Description
Discuss in detail about the Sparse table concept and its implementation.
Task

[ ] Documentation
[ ] Audio
[ ] Video

Note

While requesting the issue to be assigned, please mention your NAME & BATCH NUMBER.
Kindly refer to the Issue Guidelines.
In case you see that the issue has already been assigned, try to request for a different task within the same issue.
Changes should be made inside the DSA/directory & DSA branch.
Name of the file should be same as the issue.
This issue is only for 'GWOC' contributors of 'DSA' Domain.

Kindly assign me this one for documentation.
Motasim (DSA batch-01)

Kindly assing it to me , I'd like to contribute in a form of documentation .
Kashika parmar
Dsa batch 1

@nimisha-yadav I have good hold on array and i would like to contribute to this one in well documented form as i see there is no assignee yet ,May you assign it to me
Gitesh Pareek
Batch-1

Name: Adarsh  Navneet Sinha
Batch: DSA batch 2
Type: Documentation
I want to work on the documentation of this issue. Please assign the documentation part to me.

Name: Shalini Kumari
Batch: DSA batch 5
Type: Documentation
kindly assign documentation to me, please

Name: Shalini Kumari
Batch: DSA batch 5
Type: Documentation
kindly assign documentation to me, please

Assigning this issue to you @Raghavshalu, all the best!
Rest of the people, since you're already working on an issue so newer people are given the chance. Let me know if y'all are interested in audio/video format of this issue, I'll assign them to you.

@nimisha-yadav Thank You to assign for me!

@nimisha-yadav can u please tell me we have to do program in it ya we have to do algo about prb & how much range queries we have to do?

@nimisha-yadav can u please tell me we have to do program in it ya we have to do algo about prb & how much range queries we have to do?

Did you get your query answered?

/assign

@Raghavshalu any update on your PR? It's been many days.

@Raghavshalu any update on your PR? It's been many days.

No didi I didn't get my answer...what we do in it like algo ya program ....& How much we do....can u please explain soo...I can go with it

@Raghavshalu any update on your PR? It's been many days.

No didi I didn't get my answer...what we do in it like algo ya program ....& How much we do....can u please explain soo...I can go with it

Please take reference from these files. In case of more doubts, feel free to ping the mentors on Discord.

@Raghavshalu any update on your PR? It's been many days.

No didi I didn't get my answer...what we do in it like algo ya program ....& How much we do....can u please explain soo...I can go with it

Please take reference from these files. In case of more doubts, feel free to ping the mentors on Discord. @Raghavshalu

@Raghavshalu any update on your PR? It's been many days.

No didi I didn't get my answer...what we do in it like algo ya program ....& How much we do....can u please explain soo...I can go with it

Please take reference from these files. In case of more doubts, feel free to ping the mentors on Discord. @Raghavshalu

ohk di, now I can do

Please @nimisha-yadav didi review it..

Kindly assign me this one for documentation. Motasim (DSA batch-01)

@motasimmakki Assigning this issue to you.


prevent eslint false positives

We should migrate to v2.0.0 in order to prevent false positives like the following:

We are already running eslint, this has to be an issue with CodeClimate.

fixed in commit fc9f34c742629fa822fb887243bfa243f4f29680


404 Not found

Tried to open the project's home address, but It failed with the above error.

Thank you, I will fix it soon


Support Xmemcached v2.x"

Hi, my friend:
I add a new plugin about {com.googlecode.xmemcached}.
But there is a problem when you use it. threre are two reasons for the problem:

https://github.com/killme2008/xmemcached/pull/64
https://github.com/raphw/byte-buddy/issues/347

If you want to use this plugin right now, there are two way:

You can recompile  {https://github.com/killme2008/xmemcached}, and use the master branch.
The master branch have alreday been modifyed. Or wait the new release version.
You also can wait byte-buddy team to fix it, I have already give a issue to byte-buddy team.

@IluckySi Thanks for your contribution first. Because of this possible byte-buddy bug. We can't merge or release this right now. These left us two choices:

xmemcached released a new version, we only support that.
byte-buddy support this, and we can release this. The best choice. @raphw Hope you can solve this for us.

So sorry for that, I only can keep this pr open, and wait for what is going to happen.

And @IluckySi , in this pr. You must provide these in the pr.

A simple application includes how are you using the library you instrument, source code repository is fine.
Screenshot for trace stack.
Screenshot for the Topological graph.  From this, you can see, you miss an icon for memcached in UI repository. You should send a linked pr.

Coverage increased (+0.2%) to 17.682% when pulling 479c34f4acacbba1f9f5d05d62daff85d14dd496 on IluckySi:ilucky-skywalking into 02f939a4e5f69097ae4558a712b7d24048aee981 on wu-sheng:master.

I can provide an application about xmemcached, but I'm only a java coder, so can't provide an icon about memcahe!

@IluckySi You can ask @ascrutae for help, he know some PhotoShop guys.

Hi, @IluckySi , as you can see, https://github.com/raphw/byte-buddy/issues/347#issuecomment-333947157 has been confirmed and fixed. So, it will release in 1.7.6 .
Welcome you to work on this plugin after 1.7.6 released.

Since this pr can't be opened again. So I submit #488 to keep things in the loop.


Return value of the batch values of pgmq_archive and pgmq_delete

At the moment it seems like pgmq_archive(_batch) always returns t even if there was nothing to archive.
postgres=# select * from pgmq_archive('my_queue', array[3]);
 pgmq_archive
--------------
 t
(1 row)

postgres=# select * from pgmq_archive('my_queue', array[3]);
 pgmq_archive
--------------
 t
(1 row)

What do you think about returning the actual number of archived messages? Or rows of boolean indicating which were deleted... I am not sure how useful this would be though.

I'm happy to attempt a PR if this is something that you think would be useful!

I think this is a good idea. Row of booleans would be consistent with the single message archive. Its a bug that it returns T even though no messages were archived.

Cool. I'll give it a try. It's been a hot minute since I've written any Rust so we'll see 🙃

There will also be some pgrx stuff you'll have to work with, which could be fun :)
Returning data as a postgres row takes some extra steps. It would need to be returned as a "TableIterator", I think. Here's an example in our project: https://github.com/tembo-io/pgmq/blob/759af076b84c032c60e889f3bcef6fb1764eca43/src/api.rs#L78
And there's some more examples in the pgrx repo too
https://github.com/pgcentralfoundation/pgrx/blob/27a0d162ed938b1ebd7ba12be807877abac7998c/pgrx-examples/spi_srf/src/lib.rs#L38-L48

Thanks @ChuckHend! That looks like a great place to start.


Show a cancel button when adding a new account

This adds a "cancel" button when adding new account. Without this, the user would get stuck when adding a new account and not being able to finish the flow.

This is awesome! Quick question, why not just dismiss the presented VC on cancel instead of mucking with login states and client systems?

I did that because I found an issue when just doing a dismiss with dismiss(animated: true) on the VC. Because of this line, just dismissing and then trying to reopen the login flow fails.
I am not really sure why you check this, though? If it is to not show multiple LoginVCs, we might want to check in another way?

Ya, it's to prevent multiple logins when background and foregrounding the app. I use applicationDidBecomeActive to display the login VC b/c at that point the VC hierarchy is assembled/displayed (didFinishLaunchingWithOptions is too early).
This gave me an idea and I refactored how I'm doing settings entirely. Now I'm presenting a settings VC (contained in a nav) and pushing the login flow, so you can just hit "Back" to exit. Good call on this.
I should add a warning to the README that I'm going to be changing stuff very quickly so YMMV on whether I'll get to a PR in time... 😅

Haha, no worries!


How make migration of bcbio to another cluster or directory

Hi Chapmanb,
Our company just buy a new cluster. So I'd like to migrate bcbio from my old server to the new cluster. But the problem is the directory structure cannot be the same. So is there any way to make migration with different directory structures ? Or which config file should I change to make bcbio work nicely in new location ?
Thank you for your help !

The best approach is to re-install bcbio on the new cluster. It's not easily re-locatable via copying due to full path specifications inside the configuration and anaconda directories. It would be a lot of work to enable this because anaconda, used to manage the tool installation, sets up full paths inside of scripts. We've instead been focusing on support for containers like Docker and singularily which provide a better long term vision for making this possible.
Hopefully a re-install works cleanly on your new system.

The only problem for me to re-install all of them is the network problem. In the new cluster, the network is very bad, cannot visit website outside China steadily and also cannot use vpn. So my strategy is install all of the packages on my personal laptop based on same directory structure and in-plant  all of them to the new cluster manually. But downloading still very slow.  I cannot figure out better way to do this .

The only problem for me to re-install all of them is the network problem. In the new cluster, the network is very bad, cannot visit website outside China steadily and also cannot use vpn. So my strategy is install all of the packages on my personal laptop based on same directory structure and in-plant  all of them to the new cluster manually. But downloading still very slow.  I cannot figure out better way to do this .

Sorry about the issues. I understand the problem and wish we had a better way to work around it but don't have any sort of procedure for copying between systems because of all the places where absolute paths get used in the tool and data configurations. My only suggestion would be to write something to manually walk over all the files in the bcbio installation and replace the old absolute path on your machine with the new absolute path on the server. Sorry to not have a nicer way to deal with this but hope that helps.

What about making an offline conda repo and copy that to the firewalled cluster and install from there? You'd need to seperately copy over all the bcbio references and databases as well, of course.

I think this is a good idea. I'll try it out. Thanks for this suggestions


Generate/provide bitflags!-like helper functions

        if (DXGI_ADAPTER_FLAG::from(desc.Flags) & DXGI_ADAPTER_FLAG_SOFTWARE)
            != DXGI_ADAPTER_FLAG_NONE

Windows-rs already emits bitops for these, I really hope we can get an fn contains() and fn intersects() in there too like the bitflags! crate/macro.
Originally posted by @MarijnS95 in https://github.com/microsoft/windows-rs/pull/791#discussion_r630512211

The bitflags crate provides lots of useful helpers for interacting with bitflags besides the usual bitwise operations: https://docs.rs/bitflags/1.2.1/bitflags/#methods-1. Windows-rs would benefit from those too. Downside is that these are extra lines in generated output - and using bitflags! in generated output might even be slower, though it'd be good to profile that.

While convenient, I'm not sure how widely useful this feature would be so I'm hesitant to add the code gen at this stage.

@kennykerr That's the wrong close reason btw.


XSLT transforms directly in browser

Good morning,
I apologize if this isn't the place to ask, but given you seem to be the most knowledgable about regarding Peppol and given this repo exists, I was wondering if you know of any way to apply the XSLT transformations of UBLs directly in the browser.
Currently (and probably forever), browsers only implement XSLT1 transforms, however the XSLT file at https://docs.peppol.eu/poacc/billing/3.0/files/stylesheet-ubl.xslt is an XSLT2 file, which doesn't work in any major browser and just silently fails when used.
I tried using the library saxon-js, but I have two issues with it:

Its licencing isn't very trust-worthy
It shows strange characters in the middle of the document

Do you happen to have maybe an old legacy XSLT1 file or have these always been XSLT2? Or do you have any other solution that doesn't rely on post-processing documents on the server?
Kind regards

@wartab  Thanks for reaching out to me in this fresh repository :)
Well, I honestly don't know anything specifically about running XSLT in the browser. I am a backend guy, as this is way more efficient than running everything in JavaScript ;-)
The validation rules have always been XSLT2 and basically Saxon is the only OpenSource engine that is capable of handling these rules consistenty. Even .NET doesn't have a proper Open Source XSLT2 implementation.
If you would ask me what to do: I suggest to setup a Java backend service with an HTTP interface...

Thanks for proposing this. I think it would be cool if you could publish something like this. But as I am an Angular refusor, I am not the best person to handle such a component ;-) Having such a component will definitively be interesting for a bigger particpant group, so you may do it yourself :)