[pasteboard] Rename Pasteboard.image to Pasteboard.fileBytes

Hey, thanks for the package, it's solving my problem!
But when I started working with it I didn't understand that I can get the file bytes from the Pasteboard.image. It's not obvious to me. So if you'll rename this getter to the fileBytes it will be much more convenient and easier to understand

Thansk for the advice, but It doesn't sounds good to me.
The Pasteboard.image only designed to get image data bytes. And the files path could obtain by Pasteboard.files , then you can read the bytes by dart io File apis .

But in the web I can read a file from the Pasteboard.image which sounds strange


Writing NFC driver for linux

Don't you maybe want to just write nfc driver for linux for this bcm?
You seem to know chip and every user would benefit from this.
We wouldn't need to do workarounds like this script ;/
There are some docs:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/net/nfc
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/Documentation/networking/nfc.rst
AAAnd other drivers:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/nfc
And some wiki:
https://elinux.org/NFC_driver_notes

Writing NFC driver in kernel would not help at all as pcscd uses completely different protocol to contact the reader and does not deal with NFC stack at all (instead it only communicates through USB endpoints using well-defined protocol).
As far as I understand this script (from limited information I was able to get through decoding some of the messages) it sets up the routing so that relevant cards are routed to that USB interface.
Also, most of the "interesting" tools use libnfc, which has nothing to do with NFC stack in kernel - moreover, it specifically requires unloading of nfc modules!
I also does not know how different is libnfc-nci from libnfc - I would assume it might not be a drop-in replacement.
There are no docs on these chips (or at least no that I know of) so I can't say whether it is even possible to have NFC + PC/SC at the same time in the form you would prefer.
To conclude:

writing kernel driver in NFC might be an interesting case (possibly it will be a simple rewrite of https://github.com/torvalds/linux/blob/33920f1ec5bf47c5c0a1d2113989bdd9dfb3fae9/drivers/nfc/nfcmrvl/usb.c),
I don't have enough time to spare for such a task,
libnfc-nci might be much more interesting than nfc in kernel, but...
there might be major differences between libnfc and libnfc-nci,
neither nfc kernel module, nor libnfc-nci would magically take care of routing cards to PC/SC.

I'll leave this issue open if anyone's interested to experiment.

As far as I know libnfc and libnfc-nci is completely other things where only common thing is NFC in name.
You are right that libnfc seem to be more interesting, but there is only one device supported and I've seen efforts in issues of people wanting it to port to use linux-nfc
Thank you for your response and leaving issue open :D


CLOUDSTACK-7836: Make s2s VPN CIDR list longer

We found the 200 char limit not sufficient. This should provide more room for longer CIDR lists.
<IP_ADDRESS>/24 ==> 18 chars + comma = 19 chars per cidr max
Was: 200/19 = ~10
Now: 4096/19 = ~215

@remibergsma a better solution in the make?


fix: resources of configOverride doesn't work

This PR fixes issue #1603

@rubayethossain Are you able to carry on with this PR, or would you like me to take over?

Hi @isaachinman I would like to add the test coverage. However I am not so familiar with test, so would be great if you can take over.
Thank you!

Thanks @rubayethossain!


Handle multiple responses with ReplyingKafkaTemplate

🎁 Enhancement
Continued thread from Stackoverflow.
I'm trying to implement a reply response pattern in which I publish a message to a topic listened to by several consumer groups. That means that they will all get the message as well as submit the response in the reply topic.
The problem is because they all respond to the same message, only the first received message in the reply topic shall be answered. The others will be discarded. Given that I know how many responses I should be getting on the reply topic(call that number-n), how can I make ReplyingKafkaTemplate wait for n responses and then resolve the answer? I've tried inferring from the Spring Kafka documentation but could not quite figure it out
There were few options suggested amongst one is to extend ReplyingKafkaTemplate to support the feature or implement a timer after which you can return partial responses.
At this point ReplyingKafkaTemplate is not really built for extensions and might require almost wholesale copy of the whole class rather than extending it.

I thought about it some more, and wonder why something like this wouldn't work...
public class AggregatingReplyingKafkaTemplate<K, V, R> extends ReplyingKafkaTemplate<K, V, Collection<R>> {

	public AggregatingReplyingKafkaTemplate(ProducerFactory<K, V> producerFactory,
			GenericMessageListenerContainer<K, Collection<R>> replyContainer) {

		super(producerFactory, replyContainer);
	}

	@Override
	public void onMessage(List<ConsumerRecord<K, Collection<R>>> data) {
		List<ConsumerRecord<K, Collection<R>>> completed = new ArrayList<>();
		data.forEach(record -> {
			// We should move the following to a helper method
			Iterator<Header> iterator = record.headers().iterator();
			CorrelationKey correlationId = null;
			while (correlationId == null && iterator.hasNext()) {
				Header next = iterator.next();
				if (next.key().equals(KafkaHeaders.CORRELATION_ID)) {
					correlationId = new CorrelationKey(next.value());
				}
			}
			if (correlationId == null) {
				this.logger.error("No correlationId found in reply: " + record
						+ " - to use request/reply semantics, the responding server must return the correlation id "
						+ " in the '" + KafkaHeaders.CORRELATION_ID + "' header");
			}
			// end of helper method

			else {
				List<R> list = addToCollection(record, correlationId);
				if (list.size() == 5) {
					completed.add(new ConsumerRecord<>(record.topic(), record.partition(), record.offset(),
							record.key(), list));
				}
			}
		});
		if (completed.size() > 0) {
			super.onMessage(completed);
		}
	}

	@SuppressWarnings("rawtypes")
	private List<R> addToCollection(ConsumerRecord record, CorrelationKey correlationId) {
		R value = (R) record.value();
		// TODO
		return null;
	}

}

Need to give some thought to how/when to commit offsets, though - could be tricky.

@garyrussell , I'm running into a bit of difficulties of using this new template. Do I need to write now consumer factories that will handle a collection of a model rather than a model? I seem to have problem setting the correct JsonDeserializer.

I am proposing that we close this as "Won't fix" because the functionality is already available using Spring Integration's Aggregator...
@SpringBootApplication
public class Kgh998Application {

	public static void main(String[] args) {
		SpringApplication.run(Kgh998Application.class, args);
	}

	@Bean
	public IntegrationFlow reply1(ConsumerFactory<String, String> cf) {
		return IntegrationFlows.from(Kafka.messageDrivenChannelAdapter(cf, new ContainerProperties("kgh998reply-1"))
					.configureListenerContainer(cont -> cont.groupId("one")))
				.log()
				.channel("aggregate.input")
				.get();
	}

	@Bean
	public IntegrationFlow reply2(ConsumerFactory<String, String> cf) {
		return IntegrationFlows.from(Kafka.messageDrivenChannelAdapter(cf, new ContainerProperties("kgh998reply-2"))
				.configureListenerContainer(cont -> cont.groupId("two")))
				.log()
				.channel("aggregate.input")
				.get();
	}

	@Bean
	public IntegrationFlow aggregate() {
		return f -> f.aggregate(a -> a
					.correlationExpression("new String(headers.kafka_correlationId)")
					.releaseExpression("size() == 2"))
				.handle(System.out::println);
	}

	@KafkaListener(id = "server1", topics = "kgh998")
	@SendTo("kgh998reply-1")
	public String listen1(String in) {
		System.out.println("1:" + in);
		return in.toUpperCase();
	}

	@KafkaListener(id = "server2", topics = "kgh998")
	@SendTo("kgh998reply-2")
	public String listen2(String in) {
		System.out.println("2:" + in);
		return in.toLowerCase();
	}

	@Bean
	public ApplicationRunner runner(KafkaTemplate<String, String> template) {
		return args -> {
			ProducerRecord<String, String> record = new ProducerRecord<>("kgh998", "TesT");
			record.headers()
					.add(new RecordHeader(KafkaHeaders.CORRELATION_ID, UUID.randomUUID().toString().getBytes()));
			template.send(record);
		};
	}

	@Bean
	public NewTopic topic() {
		return new NewTopic("kgh998", 1, (short) 1);
	}

	@Bean
	public NewTopic reply1() {
		return new NewTopic("kgh998reply-1", 1, (short) 1);
	}

	@Bean
	public NewTopic reply2() {
		return new NewTopic("kgh998reply-2", 1, (short) 1);
	}

}

and
1:TesT
2:TesT
GenericMessage [payload=[test, TEST], headers=...

@garyrussell, I understand some of it might be already available somewhere else in the Spring ecosystem.  Is the requirement to use yet another spring library just for this, a burden for users having to learn how to use Spring Integrator?

@gkohen I started implementing it; as I hinted above, the challenge is managing the offsets of the replies.
Let's say I have 2 "in-flight" requests (and expect 2 replies).
The replies start coming in

reply 1a topic1.partition0.offset0
reply 2a topic1.partition0.offset1
reply 1b topic1.partition0.offset2
(2b is delayed for some reason).

So request 1 is complete, but we can't commit the offsets because the first part of request 2 would be committed while the request is still "in-flight". It gets more complicated when there are more topics/partitions involved.
However, thinking about it some more, I think we will be safe if we only commit offsets when there are no in-flight requests in process. If uncommitted offsets are subsequently replayed, they would just be discarded because there is no pending request in the super class.

PoC PR issued.


BashLexer extension with EXTRA_KEYWORDS doesn't work

(Original issue 1471 created by flo3k on 2018-09-03T17:27:52.350290+00:00)
When I try to enhance the BashLexer with:
from pygments.lexers.shell import BashLexer
from pygments.token import Name, Keyword

class BashExLexer(BashLexer):
    EXTRA_KEYWORDS = set(('mv', 'rm', 'ls'))

    def get_tokens_unprocessed(self, text):
        for index, token, value in BashLexer.get_tokens_unprocessed(self, text):
            if token is Name and value in self.EXTRA_KEYWORDS:
                yield index, Keyword.Pseudo, value
            else:
                yield index, token, value

Then it does not work.
If I do it with:
from pygments.lexers.shell import BashLexer
from pygments.token import Name, Keyword

class BashExLexer(BashLexer):
    name = 'BashEx'

    def __init__(self, **options):
        super(BashExLexer, self).__init__(**options)

    tokens = BashLexer.tokens
    tokens['basic'].append(
        (r'\b(mv|rm|ls|'
         r')(\s*)\b',
         Name.Builtin)
    )

Then it works as aspected.
This is a bit hacky, but a workaround for now. It would be very nice, if there is an easier way of extending an existing Lexer with new keywords. I use pygmentize through latex minted. And to bring new keywords into the game is a long way, compared to the listings package.
Best,
flo3k

(Original comment by flo3k on 2018-09-03T17:32:17.862976+00:00)
Here is link to an issue of the latex minted package where they want also an easier way of bringing new keywords to Lexers.
https://github.com/gpoore/minted/issues/176


How to check profile of application in android studio

Description
Describe how to check profile of application in an android studio
Domain
Android Dev (Java)
Type of Contribution
Documentation
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

/assign

/assign


Home/End key behaviour inconsistency

From<EMAIL_ADDRESS>on 2010-12-10T04:56:28Z
What steps will reproduce the problem?

In the editor the home(pos 1) key moves the cursor to the beginning of the line
The end key moves the cursor to the end of the file What is the expected output? What do you see instead? Expected is either beginning/end of file or beginning/end of line. What version of the product are you using? On what operating system? spyder-2.0.3, OS X 10.6.4

Please provide any additional information below
.
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=495

From pierre.raybaut on 2010-12-14T10:23:27Z
I confirm this.
This is certainly related to the keyboard layout: I already had some problems like that.
This would require some debugging on a Mac to see what Qt.Key_XXX values are associated to the Home/End keys.

From ccordoba12 on 2010-12-14T09:29:08Z
Christoph, this seems to be a MacOS X only problem. I tried it on Linux and I got :

beginning/end of line with home/end keys.
beginning/end of file with Ctrl+{home/end} keys.

which is the normal behavior with any other editor I've used.
Labels: -Priority-Medium Priority-Low

From ccordoba12 on 2010-12-15T08:07:44Z
Status: Accepted

From<EMAIL_ADDRESS>on 2010-12-22T06:17:45Z
I did a little test and find that the key-codes sent by Qt are the same as in http://doc.qt.nokia.com/4.7/qt.html#Key-enum I tested with the following code:
from PyQt4 import QtGui
class myWidget(QtGui.QWidget):
events = []
def keyPressEvent(self,event):
print event.text()
print '%x'%event.key()
self.events.append(event)
#event.ignore()
a = QtGui.QApplication([])
w = myWidget()
w.show()

From ccordoba12 on 2011-05-04T13:40:03Z
Labels: OpSys-OSX

From pierre.raybaut on 2011-05-16T01:21:18Z
Labels: Cat-Editor

From<EMAIL_ADDRESS>on 2012-09-03T03:09:10Z
@-ebori Thank you for the patch! It is a real life-saver.

From pierre.raybaut on 2012-09-03T07:17:11Z
This issue was closed by revision cd4d695c8cb6 .
Status: Fixed

From<EMAIL_ADDRESS>on 2011-08-16T07:07:20Z
Patch attached.
Attachment: spyderlib_widgets_sourcecode_codeeditor.py.diff


Versioning strategy

Describe the feature you'd like
As we are starting to use 'distributions' (see #91 ) of the code instead of simply using local installations, we will probably need to start using versioning to allow for using multiple versions of the code in parallel (e.g. don't want to propagate breaking changes during a course or during an almost-finished research project).
Use cases

develop reproducible projects based on top of the codebase, withouth having to worry about breaking changes in development, though we might want to patch bugs or selectively propagate features for e.g. a course or a research project.

Possible implementation

global version for all packages (1 on 1 correspondance with branches), and each package is only guaranteed to be compatible with other packages of the same version.
local version for each package, this requires specifying all compatibilities between the packages but the benefit would be not to bump packages unnecessarily (though I don't see practical issues with this actually).

@Victorlouisdg

in this post, they also argue for using a global version for the mono repo to avoid internal dependency issues etc.
https://blog.aspect.dev/versioning-releases-from-a-monorepo

all the now remains to be done is to select a release scheme.
Either we do semantic versioning, or we have another scheme that more directly associates a version with each commit on the main branch.
I think that strict semantic versioning is too much for us right now (would have to think about breaking changes etc, for now we don't want to worry about breaking changes too much).
, so I would like to use a date/commit SHA based scheme for releasing (possibly with 0.0.X semantic versioning) .
The main issue seems to me to be keeping the version ids of the setup.py files up to date without too much manual hassle? (would be annoying to do this for every commit manually I think).
Could possible create gh action that amends commits to update the version IDs? but still need to be able to make actual releases.. furthermore, it would create a lot of tags and distributions?

https://github.com/marketplace/actions/github-action-for-committing-changes-to-a-repository

could also do something like the drake nightly builds https://drake.mit.edu/pip.html#nightly-releases


trace: sampling policy per trace source

Right now, the sampling policy applies to the entire client.  This works for most applications, but sometimes there is a segmentation of trace span sources, and it would be nice to have sampling policies be applicable to different subsets.  For instance, if a server is taking in user requests and also running background tasks, I would want the user requests and the background task runs to be considered separate buckets for sampling.

@rakyll suggested offline that a workaround is to create a Client per each trace "population".  Does create more buffers/TCP conns than strictly needed, but a good enough workaround for what we want.

This package is deprecated, so I'll close this. @zombiezen if you still think the feature is valuable, open an issue at https://github.com/census-instrumentation/opencensus-go/issues/new.

We addressed this in OpenCensus by allowing users to set a sampling policy when they are creating new spans.


Bootstrapped webhooks test framework

nothing to see here

Need to figure out a hack to work around the post's 404 url (reason why the test is failing). It's most likely due to events for webhooks bubbling up too fast and the routing service doesn't have enough time to calculate the url.


[Utils] Move constructor for tvm::With

Previously, tvm::With had the default compiler-provided move constructors.  If these were used (e.g. by storing a With into a vector), the ExitWithScope would be called multiple times.  This commit explicitly removes the copy constructor/assignment, and explicitly implements move constructor/assignment.

This arose as a potential concern for segfaults when making a std::vector<With<ConstraintContext>>, as the vector may internally call a copy constructor, resulting in multiple calls to the same ExitWithScope.  This never ended up being the issue, but I wanted to remove it from any future debugging.

Looks good

Would be great to think about we really want to enable the case of vector<With>. With is originally designed to only as a sugar to enter a context and exit with RAII but not intended to put them into a vector.
Specifically, the default constructor(that initialize optional as nullopt) can be confusing for people who intended to start and use it. Perhaps we can simply disable the copy constructor in this case and make move constructor available only if the underlying Context itself is movable.
This way we would avoid the default copy constructors. Construction of moveable only value would be more tricky but doable through emplace. Finally, we can find alternatives when maintaining multiple such Constraint. E.g. a different constraint context that takes multiple such constraints.

Would be great to think about we really want to enable the case of vector.

I had found it useful for cases where I had N expressions, and I wanted to simplify one of them under the condition that the other N-1 of them are true.  The vector<With> felt like the cleaner solution, as compared to constructing an And of the N-1 conditions, then destructuring it back into N-1 conditions on the other side.

Specifically, the default constructor(that initialize optional as nullopt) can be confusing for people who intended to start and use it.

I had been seeing it as a default for cases where a context may or may not be required.  That said, now that we have C++17 we could instead use std::optional<With<T>>, so that use case isn't relevant anymore.

With is originally designed to only as a sugar to enter a context and exit with RAII but not intended to put them into a vector.

This makes sense, though in that case I think we should disable both the copy and move constructor.

Perhaps we can simply disable the copy constructor in this case and make move constructor available only if the underlying Context itself is movable.

This would work for classes that already function entirely as context managers (e.g. arith::ConstraintContext), though in those cases the With wrapper becomes unnecessary.  For classes where the class serves as both a data type and as a context (e.g. tvm::Target), I think we need to distinguish between whether the context can be moved/copied, and whether the context manager can be moved/copied.

Finally, we can find alternatives when maintaining multiple such Constraint. E.g. a different constraint context that takes multiple such constraints.

For cases where the order of exiting a context must be the reverse of entering the context, I agree.  For cases where the order of exiting the context is arbitrary, but where several destructors should all be held and called at a later point, that's already the behavior of std::vector<ContextManager>, so I don't think we'd need to recreate it.

Looking through it again, I think the move constructor only makes sense in cases where it is legal to exit scopes in something other than the reverse order of entering scopes.  For most use cases I could see (e.g. maintaining a stack of a current value), the order of destruction shouldn't be allowed to vary.  My concern was primarily that the implicitly generated copy/move constructors would result in incorrect behavior, and to remove that failure mode.  Disabling the move constructor altogether serves this same purpose, so I can update the PR to instead disable the automatically-generated move constructor.

Agree with removing both constructors and find alternatives


Get term name or slug from selected value from Advanced custom fields

I want to display taxonomy name from my select tasonomy. I added the taxonomy field via advanced custom fields.
It allows me to save the value as object or as reference with id.
So my question is there something special like the standard term function in timber related to the taxonomy field from advanced custom fields ?
At the moment i just get the id's but have no idea how to resolve this to the correct name?
Write own viewhelper ?

You should be able to do TimberTerm(id) which should returns all the details for that term.


⚠ dev-dependencies were added as dependencies in 2.1.1

In 2.1.1 package.json
  "dependencies": {
    "chai": "^4.1.2",
    "fs-copy-file-sync": "^1.1.1",
    "got": "^8.0.1",
    "mkdirp": "^0.5.1",
    "mocha": "^4.0.1"
  },
  "devDependencies": {
    "eslint": "^4.12.1",
    "eslint-config-peerigon": "^12.0.1",
    "eslint-plugin-import": "^2.8.0",
    "eslint-plugin-jsdoc": "^3.2.0",
    "nyc": "^11.3.0",
    "standard-version": "^4.2.0"
  }

I noticed it because I have a max size limit for dependencies 😉

@jhnns I guess npm tricked you! ✨

@jhnns I added a PR (#36) with dependencies moved as dev-dependencies ;-)

See https://github.com/peerigon/parse-domain/pull/36#issuecomment-396337122 :)


log_images fails with new versions of scipy

log_images relies on scipy.misc.toimage which was deprecated in scipy v1.0.0 and removed in v1.2.0. (cf. https://docs.scipy.org/doc/scipy-1.1.0/reference/generated/scipy.misc.toimage.html#scipy.misc.toimage)
Scipy documentation suggests using Pillow's Image.fromarray directly. The following changes to tensorboard_logger.py resolve the issue for me:
line 157 change:
            # Change the following:
            scipy.misc.toimage(img).save(s, format="png")
            # to:
            Image.fromarray(img).save(s, format="png")

line 12 change:
# Remove this import:
import scipy.misc
# Replace it with:
from PIL import Image

I would be happy to issue a PR with this fix.

@davidlibland PR would be welcome, your suggestion for a fix looks great 👍


Add/mention quickstart images for vSphere VM templates docs

Summary:
The vSphere create vm template docs doesn't provide easier options to use, ie the Ubuntu OVA or the SLES image SLES15-SP4-Minimal-VM.x86_64-VMware-GM.vmdk.xz

@abonillabeeche , Do you mean this is something to improve on the documentation or are you pointing at a feature that needs improvements?


packages.nuget.org not longer redirects to V1 feed

See https://github.com/NuGet/NuGetGallery/blob/master/src/NuGetGallery/Web.config#L444-L450:
<rule name="Legacy feed root URL" stopProcessing="true">
  <match url="^$" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^packages([0-9]?)\.nuget.org$" />
  </conditions>
  <action type="Redirect" url="https://packages.nuget.org/v1/FeedService.svc" redirectType="Permanent" />
</rule>

This no longer works since we put packages.nuget.org behind APIM.
/cc @cristinamanum.

We should either fix this issue or remove this code.
/cc @skofman1

Does this mean that the v1 feed isn't being used? Good opportunity to get rid of it.

Was any decision made on this?

@xavierdecoster Not that I know of. My guess is that we should investigate whether v1 is used, and if it isn't, delete the code.


Add miq postgres legacy adapter and proper specs

Depends on:

[x] https://github.com/ManageIQ/manageiq/pull/15976

Bring back old postgres adapter as miq_postgres_legacy_adapter. In a case of issues it will help us to revert the old adapter back.
We test the same specs pass the legacy and new adapater. Then that the both legacy and new adapter create exactly the same Metric records. And that switching from 1 adapter to anoter is not changing existing metrics.

@miq-bot assign @agrare

@agrare right, so that is already in https://github.com/Ladas/manageiq/blob/3c5ae5b676bf8b8919d3a582f89526308fc20f22/config/initializers/active_metrics.rb#L2 , not sure why it's in initializer instead of settings? Maybe @Fryguy knows?


feat: add headers parameter to CreateEmailOptions type

Note
This PR depends on #130 to function correctly.

This PR adds the new headers parameter to the CreateEmailOptions type.

Thanks! I'm currently blocked on using resend due to the inability to add headers.


Mixed Sequences and non-Sequences in a Choice are not aligned

In the following diagram, choice 1 & 2 are aligned while 3 is not.
Diagram.INTERNAL_ALIGNMENT = 'left';
Diagram(
  Choice(0,
    Terminal('choice 1'),
    Terminal('choice 2'),
    Sequence(
      Terminal('choice 3'),
      Terminal('and more')
    )
  )
)

Same problem with right alignment.
Maybe Sequence should not add leading and trailing paths (but only between 2 consecutive elements in a Sequence).

Ooh, thanks for the report. I'll look into this in the next week or two and see what I can do.


Remove function declaration for PHP 8.2 compatibility

I upgraded a project to PHP 8.2 today, and this function declaration was causing issues in my unit tests.
Apparently the function implicitCastDomElement was redefined every time DOMElement::isBefore() is called, and PHP didn't like that anymore and aborted with a fatal error.
I am not entirely sure what PHP change caused this issue, but i don't think this function was necessary anyways, so i replaced it with a direct call to $ancestor instead.

Thanks @warhuhn , sorry I've only just seen this!
I'll run the test suite against this now and if it's all good then I will get this pushed up to Packagist.
Thanks again!

@warhuhn There was an issue here where the function had been simply deleted and a missing $, I've fixed both these by adding the missing character and making the missing method static. Hopefully this works for you!


Show line/column information when including in search filter string

When using the quick pick to access a file, you can specify which line to land on via {file} :113. However, there is no indication on the quickpick that this will work:

Suggestion is to append  - Line 113 in the details line (and also column if they specify :113:10:

@misolori I am not 100% sure this hint would be visible in most cases where the path is long and that part would get pushed out. But I can add it and we see then. To be clear, this would appear on every result in the list if there are multiple?

That's a good point that the text might get truncated. Unless we try to truncate the path a bit like:

searchResultsView.ts monaco • ../contrib/search/browser - Line 133

or update the title

searchResultsView.ts (Line 133) monaco • sr/vs/workbench/contrib/search/browser

@misolori yeah, it might look a bit crowded if suddenly all results show the line number, maybe only the selected one should.

Oh yea I only meant the selected row

Tricky to get right with the current API for quick input (e.g. I cannot just update a label it seems when focus changes). Waiting for more people to ask for this before making a move.
As for the original complaint that this feature is not discoverable, it is now:


Expose actions creators to winamp instance

It would be very cool if you can invoke actions from outside of the app. You already expose redux store. so you have unofical API using dispatch on store like this:
winamp.store.dispatch({type: 'PLAY'})

But it it would be more cool if you could invoke code like this:
winamp.store.dispatch(winampjs.actions.loadMediaFiles([{
  url: URL.createObjectURL(blob),
  defaultName: 'foo.mp3',
}], winampjs.constants.LOAD_STYLE.BUFFER));

URL.createObjectURL work with media picker so it should work the same here.
not very nice API IMHO, but using this way you will not need to modify a lot of code. just export constants and action creators in winampjs module.

I would like to keep Redux an implementation detail. I need to be able to add/remove/change redux actions and action creators internally without breaking people who are using it as a library. If there are things like this you would like to do, let me know and most likely I'll be happy to expose it as an official API.
Would you like a "load tracks" method exposed which supports blobs?

Yes, the only think that missing from media picker API is a way to load blob from outside.

Got it. Try passing the blob as a blob attribute on the track (instead of url). Should work out of the box.

passing blob works, and what about adding media API?

If you’ll file a separate issue, I can expose a method on the Winamp class.

Great


How can you inject a service into an implementation of IClaimsTransformer?

I need to be able to query a DB in my implementation.
My understanding is that you must add the transform like this in Startup.Configure:
app.UseClaimsTransformation(o => o.Transformer = new MyClaimsTransformer());

But how can it get access to a scoped service from within MyClaimsTransformer ?

As of right now you can't. @HaoK we did talk about giving claims transformation more love ...

@blowdart @HaoK I'm not sure how meaningful a transformation you can make without access to your data :(

Since this is inside of Configure, you can service locate for it to work
var myTransformer = app.Services.GetRequiredService<MyTransformer>();
app.UseClaimsTransformation(o => o.Transformer = myTransformer);

Kinda ugly though :)

Also with the new options changes we can just make this work now that options will be a normal service.

@HaoK I don't understand your example. IApplicationBuilder doesn't seem to have a Services property (at least in RC1). It does have 'ApplicationServices' but my understanding was that  his is only appropriate for services that have an application scope. I think it is important that any DB service injected into the transformer have request scope and not be scoped to the application.

@HaoK, @blowdart, this really does not make sense, if the request is not exposed to the transformer. Any reasons why you cannot expose that?

Seems like the Options.Transformer really should be pulled from DI.

And within current request scope :clap:

@csaloio getting db or usermanager from the ApplicationServices gave me a lot of open data reader errors

@lasrol I don't suggest using ApplicationServices. What I think could be done (though it is not ideal), is to just new up your context inside of the TransformAsync method in the transformer making sure to wrap it in a using block so it is disposed of. Then use it read whatever data you need to transform the ClaimsPrincipal.
But as I said this is far from ideal. Everything about the .Net core design encourages the use of DI and but IClaimsTransformer appears to be a design oversight.

This would indeed be nice but we are not taking many new features for this release.

So will this be a breaking change in the future?

@Eilon I understand why are you against taking new features into current release, but if you want to follow semver, this change would only go into >=2.0.0 release. And maybe the change needed here is quite simple: a reference to request, which by itself has RequestServices.

And it wouldn't really break design of the feature, if I understand correctly. Because the transformation is either way done on every authenticated request.

@HaoK / @Tratcher could/should we just add this property in the meantime?

Oh, my bad. Request itself does not have RequestServices, they are on HttpContext and therefore HttpContext would need to be given.
And now that I look at the actual code and possible implementation, it might not be as easy as exposing HttpContext or RequestServices.
That could be done in the ClaimsTransformationMiddleware:

public async Task Invoke(HttpContext context)
{
var handler = new ClaimsTransformationHandler(Options.Transformer);
handler.RegisterAuthenticationHandler(context.GetAuthentication());
try
{
if (Options.Transformer != null)
{
context.User = await Options.Transformer.TransformAsync(context.User); // <-- Here
}
await _next(context);
}
finally
{
handler.UnregisterAuthenticationHandler(context.GetAuthentication());
}
}

By giving `TransformAsync` method not only `context.User`, but also `context` itself or `context.RequestServices`.

But that would require changing `IClaimsTransformer` interface. And the interface is also used in [ClaimsTransformationHandler](https://github.com/aspnet/Security/blob/dev/src/Microsoft.AspNetCore.Authentication/ClaimsTransformationHandler.cs#L31) to pass on transformer and is called in `AuthenticateAsync`:
>```CSharp
public async Task AuthenticateAsync(AuthenticateContext context)
{
    if (PriorHandler != null)
    {
        await PriorHandler.AuthenticateAsync(context);
        if (_transform != null && context?.Principal != null)
        {
            context.Authenticated(
                await _transform.TransformAsync(context.Principal), // <-- Here
                context.Properties,
                context.Description);
        }
    }
}

In which case there is only AuthenticateContext available and no request, nor HttpContext is there.
Of course, as ClaimsTransformationHandler is only instantiated in ClaimsTransformationMiddleware, it is possible to pass HttpContext to its constructor:
public class ClaimsTransformationHandler : IAuthenticationHandler
{
    private readonly IClaimsTransformer _transform;
    private readonly HttpContext _httpContext;

    public ClaimsTransformationHandler(IClaimsTransformer transform, HttpContext httpContext)
    {
        _transform = transform;
        _httpContext = httpContext;
    }

    // <...>
}

And then pass the HttpContext to TransformAsync:
context.Authenticated(await _transform.TransformAsync(_httpContext, context.Principal), // <-- Here
                      context.Properties,
                      context.Description);

If you do not want to let the user have HttpContext itself, maybe the HttpContext.RequestServices is a good compromise? It would still allow to service locate required services, but in a request-scoped manner.
Or do you have something different in mind?

@DovydasNavickas I believe that's a bit more of a service locator pattern than true DI, but it would still be vastly superior to what the current situation is.

Yes, but as the default DI supports only constructor injection and currently ClaimsTransformationMiddleware takes IClaimsTransformer from IOptions<ClaimsTransformationOptions> in a constructor, I'm not sure request-scoped injection is possible here.
Which leaves service location that I described. It may not be the best possible solution here, but as you said - that would still be way better up until >= 2.0.0.

I agree.

Moving out of Backlog for now to make sure this gets discussed again.

We can probably just make the IClaimsTransformer more like the IAuthEvent stuff, and hang the HttpContext off of the event context.
  public interface IClaimsTransformer {
     void Task<ClaimsPrincipal> TransformAsync(ClaimsTransformationContext context);
  }

  public class ClaimsTransformationContext {
    public HttpContext Context { get; }
    public ClaimsPrincipal Principal { get; }
  }

That works too.

Yep, that works :+1: I thought you wouldn't want to expose the whole HttpContext somewhy.
I can do PR for that.

merged, thanks!  f5c1c45db20fd4592a3f49d4dc1d39dc5f62108c


Make all JS "use strict";

Once upon a time, strict mode does not exist. Later, we could not rely on browsers supporting strict mode. Today we can. Therefore, there is no longer any reason whatsoever for any of our JavaScript, host-side or not, not to request strict mode.

You might want to leave a case for non-strict mode for an important with statement
https://github.com/google/caja/blob/74ba0da7aa1844b6b813437219d18ef64abe3d29/src/com/google/caja/ses/startSES.js#L812


gefyra version in 0.10.1 prints nothing

> gefyra version
>

on Ubuntu 20.x using the binary.

This was resolved in #157
Will be released with 0.10.2.


docs: fix for release buffer error

Added call for gadget_discard_buf()
gadget_discard_buf() wasn't called for if (gadget_should_discard_mntns_id(event.mntns_id)) return 0;.
Giving error:
Error: running gadget: running gadget: install tracer: loading eBPF objects: create BPF collection: program enter_openat: load program: invalid argument: Unreleased reference id=2 alloc_insn=8 (63 line(s) omitted)

Oh, I haven't seen this PR and in https://github.com/inspektor-gadget/inspektor-gadget/pull/2668, I updated the guide to reserve the buffer only after the filtering. So, the changes in this PR are not needed anymore. Sorry @pawarpranav83 😳 .


feat: Developer documentation and dev microsite.

Is your feature request related to a problem? Please describe
Want to develop a useful documentation site for Effe (I have the domain effe.dev already registered for this).   My involvement with AWS Lambda Powertools project has set my expectations pretty high - which is also kind of a curse.
Describe the solution you'd like
I really like the look and feel of AWS Lambda Powertools documentation sites AWS Lambda Powertools for Python which is built using mkdocs.
Describe alternatives you've considered
?? open to suggestions

I found another solutions. Do you say what you think, please ?

docusaurus
gitbook
docsify

They are choices for sure but why, Can you elaborate on why these?
Tech selection is about the "why", what does it bring and how does it add value over others.
I know that mkdocs has the following capabilities:

good code syntax highlighting with line highlighting
great callouts feature to provide warnings or additional info in either collapsed or displayed states
provides light/dark theme (as does everything)
light/dark theme also enables image choice based on theme (important for images on transparent backgrounds)
supports mermaidJs as a plugin
provides search capability

They are choices for sure but why, Can you elaborate on why these?
Tech selection is about the "why", what does it bring and how does it add value over others.
I know that mkdocs has the following capabilities:

good code syntax highlighting with line highlighting
great callouts feature to provide warnings or additional info in either collapsed or displayed states
provides light/dark theme (as does everything)
light/dark theme also enables image choice based on theme (important for images on transparent backgrounds)
supports mermaidJs as a plugin
provides search capability

@walmsles
Ok, at the moment, it's better to use a technology you know because it is already validated. The solutions I added in the section are only other alternatives that can be used.
The options you have listed here are convincing and among them all is plugin installation.


After upgraded to version 0.15.1 still show current version 0.15.0

Environment
Docker
Version
0.15.1
Describe the problem
Afrer upgrade to latest version i got new features like weekly forecast for weather widget and omv widget (still didint test that). But i still have blue dot in about page.
Tried to recreate image few times and cleared browser cache but still the same.
Logs
No response
Context

Please tick the boxes

[X] I confirm that I attached the proper logs
[X] I've read the docs
[X] I've checked for duplicate issues
[X] I've tried to debug myself

It's not your fault, we have a tendency to forget to update the version in app.
Sorry about that. The latest image should be corrected but it may take some time it to be propagated.
Try pulling the image again tomorrow. It's not going to hinder function of the app, but I understand the blue dot can be annoying sometimes.

@Tagaishi Sure, its fine. Thanks.


IDVA6-1926 Web Security Node Upgrade

JIRA link
https://companieshouse.atlassian.net/browse/IDVA6-1926
Description
Updating web security node to 4.4.3 and node session handler to 5.2.0

CI: Security warnings found!

CI: No security warnings found

CI: No security warnings found

CI: No security warnings found

CI: No security warnings found

CI: No security warnings found


Suggestion: Allow enums on enum type

TL;DR;
.enum() acccepts strings, it would be nice if it also accepted String Enums
Long version
Let's look at this code example:
const userSchema = schema({
    pk: string().key(),
    preferredLanguage: string().enum('en-us', 'pt-br', 'es-es'),
});

It would be cool if I could write:
export enum Language {
    PT_BR = 'pt-br',
    EN_US = 'en-us',
    ES_ES = 'es-es',
}

const userSchema = schema({
    pk: string().key(),
    preferredLanguage: string().enum(Language),
});

And have it correctly typed into the formatted item.
How to handle Numeric Enums is still an open question. Maybe only accept string enums?

Yes or simply string().enum(...Object.values(Language)) should do. I'll add some documentation about it, although I agree with you, supporting ts enums out-of-the-box would be cool 👍


Should we add pio_sm_set_pins_with_mask64 and pio_sm_set_pindirs_with_mask64?

If you try calling pio_sm_set_pins_with_mask or pio_sm_set_pindirs_with_mask with a gpio >= 32 you'll get a build error. You have to know to use pio_get_gpio_base when constructing the mask. Just wondering if it would be more obvious to add a 64bit version of these functions? We'd have to assert it was valid for the gpiobase?

ha, yes, and indeed the existing (non-mask) functions are just plain broken it seems

You mean pio_sm_set_pins and pio_sm_set_consecutive_pindirs? I hadn't noticed that. Might have to write some test code

Hmm - I've just been hit with this one on a board I constructed. If any code needs to be tested I can run it here.

Which function are you trying to use?

I was trying to get this bit of code to output, ported from a RP2040 product ->
pio_sm_config c = toggleprog_program_get_default_config(offset);
pio_set_gpio_base(pio, 16);

pio_gpio_init(pio, LEDCLK);
pio_gpio_init(pio, LEDDAT);
pio_gpio_init(pio, LEDLAT);

#define ADJUST(x) ((x+16)%32)
sm_config_set_out_pin_base(&c, ADJUST(LEDDAT));
sm_config_set_set_pin_base(&c, ADJUST(LEDDAT));
pio_sm_set_consecutive_pindirs(pio, sm, ADJUST(LEDDAT), 1, true);
pio_sm_set_consecutive_pindirs(pio, sm, ADJUST(LEDCLK), 2, true);

sm_config_set_sideset(&c, 2, false, false);

sm_config_set_sideset_pins(&c, ADJUST(LEDCLK));
sm_config_set_out_pins(&c, ADJUST(LEDDAT), 1);

sm_config_set_fifo_join(&c, PIO_FIFO_JOIN_TX);
sm_config_set_clkdiv(&c, clk_div);
sm_config_set_out_shift(&c, false, true, 32);

 pio_sm_init(pio, sm, offset, &c);
 pio_sm_set_enabled(pio, sm,true);
    ```

@StijnKuipers Just looked at your code again. It looks like your code is buggy.
The following functions handle pins >= 32, do not adjust your pin numbers when calling them.
sm_config_set_out_pin_base
pio_sm_set_consecutive_pindirs
sm_config_set_sideset_pins
sm_config_set_out_pins

The following functions handle pins >= 32, do not adjust your pin numbers when calling them.
sm_config_set_out_pin_base

Doxygen at https://github.com/raspberrypi/pico-sdk/blob/develop/src/rp2_common/hardware_pio/include/hardware/pio.h#L263 says \param out_base 0-31 First pin to set as output so I guess that might need updating to avoid confusion?
Also, would you get a compile-time error if you tried doing both sm_config_set_out_pin_base(&c, 10) and sm_config_set_in_pin_base(&c, 40) ?

merged into develop


fix @param in scribble text element

This adds curly brackets around the variable type string in a scribble() function header @param, preventing an error reported by Feather.
E GM1041 The type 'String' appears where the type 'Struct' is expected. Object1 : Create 12:21

Sorry, this is not quite right.


String ") {" breaks subsequent tokens

E.g.
function write(str:string){
}

write(") {");
// var foo = 123;

Look like:

/cc @Cu3PO42 perhaps rule ordering is significant?

I'll definitely look into this later today. Seems very weird to me, though.

@basarat I actually can't reproduce this.

Try the "exact" code I posted. The code you posted is very different.

I thought you were referring to the ){ at the end of the function definition for write and just added more tokens to confirm that wasn't broken. Sorry for that misunderstanding.

I can reproduce this now, however this is also broken in the transpired JavaScript as you can see above. I suspect this is a bug in the string definition for the JS grammar. I'll investigate a bit and open an issue there if appropriate.

, however this is also broken in the transpired JavaScript as you can see above.

I half expected that :rose: :)

Right, the issue on the JavaScript grammar is still there, but I "manually" fixed it for TS files.

I just fixed this in language-javascript so it should be out in the next Atom release.


AppID not included for Custom or styled receivers

Hey, i noticed that i couldn't load my custom receiver connected to the appID.
I was able to load the receiver adding this line
activity.intent.putExtra(CastMediaControlIntent.EXTRA_CAST_APPLICATION_ID, "APPID")
in CastPlugin.kt line ~300.

Thank you for sharing I will make the correction when I get back from vaccation!

Sorry for the long time it take to answer. But when you check in the example/lib/receiverConts.dart.
This is where you need to put you app id to make the app work.


Add SixtyFPS

Freshly announced and promising (IMHO):

https://github.com/sixtyfpsui/sixtyfps
https://sixtyfps.io/releases/0.1.1/docs/rust/sixtyfps/
https://sixtyfps.io/blog/announcing-sixtyfps-0.1.html

But it already added. Anyway i'd recommend to remove CSS tag, beacause there is no CSS.

Has now been added, thank you! Closing. Next PR will remove CSS tag.


docs/ui: Tell users to put info in stream descriptions

We should describe workarounds to pinning messages under Streams & Topics in our documentation.  The basic workaround for now is putting useful markdown (or links) in the stream description.  We may also want to mention starring topics briefly.
In the status bar where we show description now, we may want to change messaging from "No description" -> "Describe type of conversation. Add link to topics / messages to pin them in stream narrow."
More info here: https://chat.zulip.org/#narrow/stream/2-general/topic/Pinned.20messages/near/1055884

@zulipbot claim

@zulipbot abort

@zulipbot claim

Can I work on this issue?

claim

This issue can be closed once #23382 is merged and #23376 is resolved.

Closing in favor of https://github.com/zulip/zulip/issues/23376, since that's the only party remaining for this.


Feature/adding new book to db

This pull request introduces a new feature that allows users to add and books to the database. The feature includes the following changes:
-Update Book Schema Definition: Updated the book schema to include a userId that ties a book to it's owner(the user that added it). This is so that only a book owner can delete a book from the app. Also updated the book schema property 'isbn' from type 'number' to type 'string'. This is because ISBN numbers are alphanumeric characters (includes numbers and strings), which if  it is set as number would produces a cast error when uploading to db.

Updated API Endpoint for Book Creation:  API endpoint has been updated to facilitate the addition of books to the database. Users can provide book details, and the backend validates the input before creating a new book entry associated with the respective user.

New API Endpoint for Book Deletion: A new API endpoint has been created to facilitate the deletion of books from the database. Users can only delete books they own, that is books they added.

-Book Deletion Functionality: Building on the addition feature, this enhancement also includes the ability to delete books from the database. Users can only delete books that they have added, ensuring a secure and controlled environment.

Feedback and Responses: The API responses have been carefully crafted to provide users with meaningful feedback, including success messages and error descriptions.

https://github.com/gbowne1/codebooker/assets/100074330/2438bbd1-3d70-4ce9-983b-7f06062e0acf
FURTHER UI ADDITIONS:

Changed book addition icon
Used MUI moreHerizIcon to indicate hidden content

@LOGESH-B
yes it could be restricted.  I mean it would probably be better if we merge this then add a issue. Only logged in users should be able to edit their own library.  And not be able to edit the global.

@LOGESH-B all users can see the delete and edit button when they click on the ellipsis icon which indicates more content but only owners can delete their book and also edit their book.

Hii @BlackBond06  yes, the validation are done at backend its good, but it is unnecessary you are showing it to all user

Yea @LOGESH-B I think I see you point. So it should only be visible to users who has added a book right ?

Yeah...

I think I can make that adjustments. Can I go ahead ?


refactor: migrate with storage host capability check

Description
Refactors Boolean HypervisorCapabilitiesDao::isStorageMotionSupported to boolean HypervisorCapabilitiesDao::isStorageMotionSupported for simplifying callers.
Update log messages.

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[x] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[ ] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[ ] Major
[ ] Minor
[ ] Trivial

Screenshots (if appropriate):
How Has This Been Tested?

@blueorangutan package

@shwstppr a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: centos7 :heavy_check_mark: centos8 :heavy_check_mark: debian. SL-JID 56

@blueorangutan package

@shwstppr a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: centos7 :heavy_check_mark: centos8 :heavy_check_mark: debian. SL-JID 67

@blueorangutan test

@shwstppr a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian Build Failed (tid-723)

@blueorangutan package

@shwstppr a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

@blueorangutan package

@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_multiplication_x: centos7 :heavy_check_mark: centos8 :heavy_multiplication_x: debian. SL-JID 270

@blueorangutan package

@shwstppr a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: centos7 :heavy_check_mark: centos8 :heavy_check_mark: debian. SL-JID 294

Trillian test result (tid-1008)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 36476 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr5030-t1008-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_kubernetes_clusters.py
Smoke tests completed. 88 look OK, 0 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

@GutoVeronezi I resolved some of your comments on outdated code. Are all your questions/comments addressed (i.e. lgty?)

Packaging result: :heavy_check_mark: centos7 :heavy_check_mark: centos8 :heavy_check_mark: debian. SL-JID 349

Packaging result: :heavy_check_mark: centos7 :heavy_check_mark: centos8 :heavy_check_mark: debian. SL-JID 385

@blueorangutan test matrix

@rhtyd a Trillian-Jenkins matrix job (centos7 mgmt + xs71, centos7 mgmt + vmware65, centos7 mgmt + kvmcentos7) has been kicked to run smoke tests

Trillian test result (tid-1153)
Environment: vmware-65u2 (x2), Advanced Networking with Mgmt server 7
Total time taken: 47203 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr5030-t1153-vmware-65u2.zip
Intermittent failure detected: /marvin/tests/smoke/test_kubernetes_clusters.py
Intermittent failure detected: /marvin/tests/smoke/test_vm_life_cycle.py
Smoke tests completed. 86 look OK, 2 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_01_invalid_upgrade_kubernetes_cluster
Failure
0.01
test_kubernetes_clusters.py

test_02_deploy_and_upgrade_kubernetes_cluster
Failure
0.01
test_kubernetes_clusters.py

test_03_deploy_and_scale_kubernetes_cluster
Failure
0.00
test_kubernetes_clusters.py

test_04_basic_lifecycle_kubernetes_cluster
Failure
0.00
test_kubernetes_clusters.py

test_05_delete_kubernetes_cluster
Failure
0.00
test_kubernetes_clusters.py

test_06_deploy_invalid_kubernetes_ha_cluster
Failure
0.00
test_kubernetes_clusters.py

test_07_deploy_kubernetes_ha_cluster
Failure
0.00
test_kubernetes_clusters.py

test_08_deploy_and_upgrade_kubernetes_ha_cluster
Failure
0.00
test_kubernetes_clusters.py

test_09_delete_kubernetes_ha_cluster
Failure
0.00
test_kubernetes_clusters.py

test_01_migrate_VM_and_root_volume
Error
113.60
test_vm_life_cycle.py

test_02_migrate_VM_with_two_data_disks
Error
105.41
test_vm_life_cycle.py

Trillian test result (tid-1151)
Environment: xenserver-71 (x2), Advanced Networking with Mgmt server 7
Total time taken: 50758 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr5030-t1151-xenserver-71.zip
Intermittent failure detected: /marvin/tests/smoke/test_domain_vpc_offerings.py
Intermittent failure detected: /marvin/tests/smoke/test_kubernetes_clusters.py
Intermittent failure detected: /marvin/tests/smoke/test_pvlan.py
Intermittent failure detected: /marvin/tests/smoke/test_routers_network_ops.py
Smoke tests completed. 86 look OK, 2 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_01_invalid_upgrade_kubernetes_cluster
Failure
3611.93
test_kubernetes_clusters.py

ContextSuite context=TestKubernetesCluster>:teardown
Error
135.96
test_kubernetes_clusters.py

test_create_pvlan_network
Error
0.03
test_pvlan.py

Trillian test result (tid-1152)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 51740 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr5030-t1152-kvm-centos7.zip
Intermittent failure detected: /marvin/tests/smoke/test_accounts.py
Intermittent failure detected: /marvin/tests/smoke/test_internal_lb.py
Intermittent failure detected: /marvin/tests/smoke/test_kubernetes_clusters.py
Intermittent failure detected: /marvin/tests/smoke/test_projects.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_vpn.py
Smoke tests completed. 87 look OK, 1 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_01_invalid_upgrade_kubernetes_cluster
Failure
3037.69
test_kubernetes_clusters.py

test_02_deploy_and_upgrade_kubernetes_cluster
Failure
3607.36
test_kubernetes_clusters.py

test_03_deploy_and_scale_kubernetes_cluster
Failure
0.05
test_kubernetes_clusters.py

test_04_basic_lifecycle_kubernetes_cluster
Failure
0.04
test_kubernetes_clusters.py

test_05_delete_kubernetes_cluster
Failure
0.05
test_kubernetes_clusters.py

test_07_deploy_kubernetes_ha_cluster
Failure
0.04
test_kubernetes_clusters.py

test_08_deploy_and_upgrade_kubernetes_ha_cluster
Failure
0.04
test_kubernetes_clusters.py

test_09_delete_kubernetes_ha_cluster
Failure
0.04
test_kubernetes_clusters.py

ContextSuite context=TestKubernetesCluster>:teardown
Error
82.67
test_kubernetes_clusters.py

@blueorangutan package

@nvazquez a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_multiplication_x: debian. SL-JID 527

@blueorangutan test matrix

@nvazquez a Trillian-Jenkins matrix job (centos7 mgmt + xs71, centos7 mgmt + vmware65, centos7 mgmt + kvmcentos7) has been kicked to run smoke tests

Trillian test result (tid-1244)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 35215 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr5030-t1244-kvm-centos7.zip
Smoke tests completed. 88 look OK, 0 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

Trillian test result (tid-1243)
Environment: xenserver-71 (x2), Advanced Networking with Mgmt server 7
Total time taken: 52567 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr5030-t1243-xenserver-71.zip
Intermittent failure detected: /marvin/tests/smoke/test_diagnostics.py
Intermittent failure detected: /marvin/tests/smoke/test_internal_lb.py
Intermittent failure detected: /marvin/tests/smoke/test_kubernetes_clusters.py
Intermittent failure detected: /marvin/tests/smoke/test_network.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_redundant.py
Intermittent failure detected: /marvin/tests/smoke/test_vpc_vpn.py
Smoke tests completed. 87 look OK, 1 have error(s)
Only failed tests results shown below:

Test
Result
Time (s)
Test File

test_01_create_redundant_VPC_2tiers_4VMs_4IPs_4PF_ACL
Failure
672.49
test_vpc_redundant.py

test_03_create_redundant_VPC_1tier_2VMs_2IPs_2PF_ACL_reboot_routers
Error
313.98
test_vpc_redundant.py


[question] Baselines termination criterion

Hi! I was wondering what the training termination criterion was for training the baselines in https://github.com/DLR-RM/rl-baselines3-zoo/blob/master/benchmark.md. It says that you decide n_timesteps prior to training, but have agents always converged by that point?
Thanks a lot for your time.

thanks a lot


docker health-check script

OS
Your OS:
Debian
Versions
The db-sync version (eg cardano-db-sync --version):
PostgreSQL version:
13.4
Build/Install Method
The method you use to build or install cardano-db-sync:
build
Run method
The method you used to run cardano-db-sync (eg Nix/Docker/systemd/none):
Docker
Additional context
Add any other context about the problem here.
Problem Report
Please do not include screenshots or images, but instead cut and paste any relevant log messages
or errors.
I guess would be nice to have an have an health check script within the db-sync official docker image (nix).
I am experiencing db-sync container losing connection with the node.socket and not recovering it ( I am going to open an other issue for it) and the health script can help recover the container without manual intervention.

Hi @stakelovelace
Something like the following script could be used as a health-check for db-sync.
It makes some assumptions about host names based off the docker-compose.yml available in this repository and the deployment being docker containers.
The core checks are:

Is the service listening on EKG port? If not the service hasn't started yet.
Does the IPC socket exist for db-sync?

Along with the healthcheck  blocks in the docker config you could have:
    healthcheck:
      test: ["SHELL", "scripts/health-check.sh", "--check"]
      interval: 60s
      timeout: 10s
      retries: 5

#!/usr/bin/env bash

# Unoffical bash strict mode.
# See: http://redsymbol.net/articles/unofficial-bash-strict-mode/
set -u
set -o pipefail
IFS=$'\n\t'

progname="$0"

function die {
    echo "$1"
    exit 1
}

function check_cardano_db_sync {
    # Check EKG port is listening
    curl -f cardano-db-sync:12788 2>&1 || die "Error : Cardano DB Sync not listening on EKG port 12788."

    # Make sure we have a socket from cardano-node
    IPC_SOCKET="/node-ipc/node.socket"
    [ -f ${IPC_SOCKET} ] || die "Error : Cardano Node IPC socket missing at '${IPC_SOCKET}'."
}

function check_cardano_node {

    # Check cardano_node EKG port
    curl -f cardano-node:12788 2>&1 || die "Error : Cardano Node not listening on EKG port 12788."
}

function usage_exit {
    echo
    echo "Usage:"
    echo "    $progname --check             - Check health of db-sync."
    exit 0
}

case "${1:-""}" in
    --check)
        check_cardano_node
        check_cardano_db_sync
        ;;
    *)
	usage_exit
	;;
esac

echo "All good!"
exit 0

More detailed checks would need to take into account how the service has been deployed but I could imagine adding Postgres connectivity checks using pg_isready -U postgres  or specific queries.

Resolved, a more specific health check script requires knowledge about the deployment environment.


Reference levels for the connectivity indicator

This thread holds the discussion about the reference and threshold levels for the connectivity indicator.
The reference value is defined as the mean distance to mire polygons (connectivity) when the analyses is ignoring human infrastructure.
The threshold value for ecological condition is tentatively set to 0.6 (i.e the default value following a linear rescaling).

Probably the ecological condition can still be considered quite good even with a mean of 40% longer distance to surrounding mire polygons. I suggest instead using a negative exponential rescaling, like this:

(source)
The default threshold value shift naturally down when doing this, but one can also define it spesifically, and I think somewhere around 70-90% increasded distance is ballpark where it should be.

I will do this when the downloadning from GEE is finished tomorrow. But I think I will have a larger portion of 0 and 1 values than in your example. Is that a problem?

Thats fine I think. The area aggregated indicator values (e.g. regional) will in any case not be that extreme.

Now I have all the calculations of the connectivity finished in ArcGIS Pro (for several million polygons). So you advice to rescale in this way: Rescaled_Connectivity = exp(-0.6 * [Connectivity]) ? And then find upper and lower confidence interval (2.5 % lower and 2.5 % upper)?

If by [Connectivity] you mean the qoutient, then actually I was thinking
Rescaled_Connectivity = [Connectivity]^0.5
You can get the CI when aggregating to regions, but the reascaling at the polygon level will not produce any variation.

By the way I obtain an average value of 0.715874 and a 95% confidence interval of 0.005124058 for the qoutient


Provide Configuration for AddKafkaConsumer

Currently, AddKafkaConsumer extension method is overloaded and accepting a lot of different parameters. One solution is builder pattern but I think it will be easier to provide a KafkaConfig class and expect it in AddKafkaConsumer method to provide extra configuration of kafka clusters, brokers, producers and consumers.

Added KafkaConfig class to support this.


Create multidimensional poverty index dataset

Steps to create the Multidimensional Poverty Index (MPI) dataset on the ETL

@Marigold Regarding the .gitignore_global file, I ran
touch ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global

Adding the exception and changing the file name, but it didn't seem to work. I also tried while in the ETL folder:
touch ~/etl/.gitignore_global
git config --global core.excludesfile ~/etl/.gitignore_global

@Marigold Regarding the .gitignore_global file, I ran
touch ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global

Adding the exception and changing the file name, but it didn't seem to work. I also tried while in the ETL folder:
touch ~/etl/.gitignore_global
git config --global core.excludesfile ~/etl/.gitignore_global

@paarriagadap I think it's better to simply move the file outside of that folder. You can just put it in your desktop or wherever, temporarily. Then you run the snapshot script, and delete the file. After you have run the snapshot, that file will appear in your etl/data/snapshots/ophi/... and will stay there forever. So I'd suggest so respect the structure of the etl repos, instead of having a different one, where you also have csv files in different places.

I added a tiny Penn World Table change in the name of the dataset

Sorry, there are several new messages which were pending before, because I didn't knowI had to press the "Review changes" option


Private message glitch

Notice: Object of class BoincUser could not be converted to int in /root/project/html/user/pm.php on line 216
Warning: Cannot modify header information - headers already sent by (output started at /root/project/html/user/pm.php:216) in /root/project/html/user/pm.php on line 237
Username: grcnode.co.uk

Very weird..

Creating pm:

Error message:

PM makes it despite error!

I spun up a new boinc-server-docker instance with default boinc/everything - the above error is present & thus not caused by project-rain-site!
Notice: Object of class BoincUser could not be converted to int in /root/project/html/user/pm.php on line 216

I updated boinc-server-docker to the latest BOINC commit with David's fix and tagged as 1.3.3. Images should be built soon (incidentally if you haven't seen, you can track the build process on the Docker hub e.g. https://hub.docker.com/r/boinc/server_apache/builds/)

https://github.com/BOINC/boinc/commit/e26094e41eeeaf3a2b5afaae09e8927435cfa982


Mutation error handling

[ ] Login
[ ] Register
[ ] Verify

Wait for relay-compose issue to be resolved

I don't quite understand the problem. Can't you just reject the error like here
And then handle the errors in the catch?

That works, but feels like a workaround. I like the approach of relay-commit-mutation-promise better, where they reject the promise in onComplete. Anyways I think there's a bug in relay-compose, since there the errors just get swallowed. There might be a nicer solution, when that issue is fixed.
But for now, it's a good way to make it work.

@MartinDawson There also seems to be a problem in your code, since catch looks like following:
..Mutation(input).catch((error) => {
      throw new SubmissionError(error);
}),

error might be an array of errors thrown in the fetcher or a single error from the onError callback in createMutation, right?


Support Man in the Middle with Proxy Chaining

The current implementation of MITM per #79 is mutually exclusive with proxy chaining.  It would be useful to be able to do proxy chaining and MITM at the same time.
This may be doable by just having the very last proxy in the chain do the MITM stuff.

Please support this feature!!

It's working with ganskef/LittleProxy-mitm, but you need some little modifications to the LittleProxy SNAPSHOT version.
I've contributed it to mockserver too and it's been integrated there.
Am 5. Mai 2015 08:58:56 MESZ, schrieb mathanv<EMAIL_ADDRESS>
Please support this feature!!

Reply to this email directly or view it on GitHub:
https://github.com/adamfisk/LittleProxy/issues/87#issuecomment-98975025

Thanks! I had a look at your modifications but I did not find any changes in DefaultHttpProxyServer and ProxyToServerConnection classes where lies the main switching points between MITM and ChainedProxy. Just wondering how can I enable both, and get them working with your fix.
Please suggest.

Sorry, I misunderstand you. This implements MITM with a Certificate Authority and dynamic generated keys, but I've never tryed to use it in conjunction with a chained proxy.
Am 6. Mai 2015 15:27:33 MESZ, schrieb mathanv<EMAIL_ADDRESS>
Thanks! I had a look at your modifications but I did not find any
changes in DefaultHttpProxyServer and ProxyToServerConnection classes
where lies the main switching points between MITM and ChainedProxy.
Just wondering how can I enable both, and get them working with your
fix.
Please suggest.

Reply to this email directly or view it on GitHub:
https://github.com/adamfisk/LittleProxy/issues/87#issuecomment-99458332

No problem. I am in dire need of using both MITM and ChainedProxy together for recording the request/responses of HTTPS traffic relayed to another web proxy. The worst case which is happening now is that once ChainedProxy mode is enabled all the HTTPS requests get tunneled, and even the GET requests cannot be sniffed by the filters :-(. All one can see is the CONNECT requests here.

Raised a PR for this - https://github.com/adamfisk/LittleProxy/pull/251

This is fixed my @MediumOne's fix, so I'll close this issue.


Change the semantics of Ignore

Assuming that the primary function of this call is to affect the behavior of conventions then calling Entity<TEntity> before or after Ignore<TEntity> should still result in the entity type being added to the model. However if Ignore is called it could mean that no conventions will run on that entity type.

We've decided this isn't a very important scenario and preserving EF6 behavior trumps it.


Monitoring installation does not complete because PVC is stuck pending

Rancher Server Setup

Rancher version: 2.6.3
Installation option (Docker install/Helm Chart): Helm Chart, RKE1
Proxy/Cert Details: N/A

Information about the Cluster

Kubernetes version: 1.21.9 & 1.21.12
Cluster Type (Local/Downstream): Downstream, Custom

User Information

What is the role of the user logged in? Admin

Describe the bug
Exact same bug as in https://github.com/rancher/rancher/issues/29634
To Reproduce

Install monitoring from cluster tools
Configure persistent storage for Prometheus using a storage class

Result

PVC stays in pending status and never reaches bound which blocks deployment

Expected Result

PVC reaches bound status and deployment completes

Additional context
This is related to this issue where I found the solution, i.e. to remove the entire selector block from prometheus' storageSpec. Original storageSpec looks like this :
    storageSpec:
      volumeClaimTemplate:
        spec:
          accessModes:
            - ReadWriteOnce
          resources:
            requests:
              storage: 120Gi
          selector:
            matchExpressions: null
            matchLabels: {}
          storageClassName: ceph-rbd-sc
          volumeMode: Filesystem

Working one looks like this :
    storageSpec:
      volumeClaimTemplate:
        spec:
          accessModes:
            - ReadWriteOnce
          resources:
            requests:
              storage: 120Gi
          storageClassName: ceph-rbd-sc
          volumeMode: Filesystem

We've just hit this too after a fresh install of the monitoring chart. This should not be closed.


portForwards ignore not respected (1.0.1 regression?)

Description
In lima 1.0.0 we could disable port forwarding (except ssh port) using:
portForwards:
  - ignore: true
    proto: any

In lima 1.0.1 this seems to be broken. The port rule is detected, but then we see logs about port forwarding.
% limactl start --tty=0 test.yaml
...
INFO[0012] [hostagent] TCP (except for SSH) and UDP port forwarding is disabled
...
INFO[0089] [hostagent] Forwarding TCP from [::]:10250 to <IP_ADDRESS>:10250
INFO[0092] [hostagent] Forwarding TCP from [::]:6443 to <IP_ADDRESS>:6443

I think this is the change in 1.0.1 to disable the grpc port forwarding. The ignore rule probably never worked with the ssh forwarder.
Can be reproduced by this k8s based yaml:
test.tar.gz

The ignore rule probably never worked with the ssh forwarder.

I've not tested it, but just looked at the source, and it has been implemented in a similar way for the ssh forwarder as well. Not sure why it doesn't work.

Before we switched to grpc, I used a different rule that worked:
portForwards:
  - guestPortRange: [1, 65535]
    guestIP: "<IP_ADDRESS>"
    ignore: true

Adding guestIP solves the issue:
portForwards:
  - ignore: true
    proto: any
    guestIP: "<IP_ADDRESS>"

I think this is the change in 1.0.1 to disable the grpc port forwarding. The ignore rule probably never worked with the ssh forwarder.

I've tested your test.yaml with Lima 1.0.0 (which defaults to gRPC port forwarding), and it also forwards the ports (as I expected from just reading the code):
INFO[0019] [hostagent] Forwarding TCP from [::]:6443 to <IP_ADDRESS>:6443
INFO[0019] [hostagent] Forwarding TCP from [::]:10250 to <IP_ADDRESS>:10250
ERRO[0020] [hostagent] Error during DNS Exchange: read udp <IP_ADDRESS>:61205-><IP_ADDRESS>:53: i/o timeout
INFO[0022] [hostagent] Forwarding TCP from [::]:10256 to <IP_ADDRESS>:10256

So this never worked to disable port forwarding for ports bound to <IP_ADDRESS> (or ::).
I'm tempted to say we change the default guestIP to <IP_ADDRESS> when ignore is true. It makes the rules more complex, but I suspect this is almost always what you want in an ignore rule. We already default guestIP to <IP_ADDRESS> when IPMustBeZero is true (because that option only makes sense for this value), so there is precedent for an exception.

So this never worked to disable port forwarding for ports bound to <IP_ADDRESS> (or ::).

Posible, maybe I tested with the default template, or maybe I saw the line:
INFO[0012] [hostagent] TCP (except for SSH) and UDP port forwarding is disabled

and missed the Forwarding port message later.

I'm tempted to say we change the default guestIP to <IP_ADDRESS> when ignore is true. It makes the rules more complex, but I suspect this is almost always what you want in an ignore rule. We already default guestIP to <IP_ADDRESS> when IPMustBeZero is true (because that option only makes sense for this value), so there is precedent for an exception.

I think it makes sense. If you want to ignore only specific guest ip, you can specify the ip you want to block, so there is no loss of functionality.
It is also ok to require guestIP: "<IP_ADDRESS>" or support an alias like "any", since we have the same requirement for proto. Having guestIP magical and require explicit proto is not consistent. Either we default to "any" for both when using ignore, or require both to be set.


Build Failures on Hosts Running SELinux

What happened:
Building GL on a host system running SELinux in enforcing mode will fail when chcon commands are triggered within the chroot env.
What you expected to happen:
This should work.
How to reproduce it (as minimally and precisely as possible):
Just have any system running SELinux in enforcing mode and run the GL build from scratch.
Anything else we need to know:
This issue was reported by @Vincinator and @gyptazy
Environment:

RHEL based system with SELinux in enforcing mode
Garden Linux host with SELinux in permissive mode

I had the issue on a Garden Linux environment with SELinux in permissive mode.
 sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             default
Current mode:                   permissive
Mode from config file:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33

With the changes from https://github.com/gardenlinux/gardenlinux/issues/1014 this issues doesn't exist anymore. However, this got deactivated for the same reason as this case. An upcoming solution in #1014 will fix this one as well.


not expected to pass on GemStone

https://travis-ci.org/GsDevKit/Mapless/jobs/48192410:
**************************************************************************************
	Results for anArray( 'BaselineOfMapless') Test Suite
35 run, 28 passes, 4 expected defects, 3 failures, 0 errors, 0 unexpected passes
**************************************************************************************
*** FAILURES *******************
	MaplessGemstoneTest debug: #'testComposedSave'.
	MaplessGemstoneTest debug: #'testComposedSaveAndLoad'.
	MaplessGemstoneTest debug: #'testComposedAccess'.
**************************************************************************************

These tests are not expected to pass in GemStone...

tests passing


Make build badge link to Travis CI

@mingrammer btw, I'm one of the creators/maintainers of Go Report Card. This is cool!

@shawnps Hi, shawnps! Go Report Card is very cool idea for me, so I was inspired from that! and so I glad to your PR ><.
Thanks for fixing the link with correct location :).
I've been so busy these days, so I've could not maintain it, but as soon, I'll implement the remaining features and publish it as Github integration :)


Adjust input modal alignment

Fixes: #184

I did a force-push without a new commit to correct one line of CSS by mistake, so the PR was closed for a moment. I'm sorry for repeating the same mistake over and over again.

@div-seungha,
When you realize you're doing the same thing repeatedly, it's time to review your routine. We cannot rely solely on being cautious, because we all inevitably slip up from time to time. Only consistent habits can truly save us.
I was wondering if you always check the status with git status or git log whenever you do anything. Personally, I always run git status and git log --pretty=oneline consecutively whenever I move my focus onto Iterm, even if I'm not planning to run any specific commands.
This cycle of repeating the same mistakes and feeling sorry must come to an end.

@sehkone Thank you for kindly pointing out. Let me have a hands-on meeting to have @div-seungha on track.

@sehkone I am going to have a meeting with Sophie this Thursday to review my git usage practices. I will make every effort to identify the best approach to ensure that I do not repeat past mistakes.

It looks like the branch needs to be rebased. Could you please take a look and rebase it when you get a chance?

@jinjoolee07 I have pushed a new commit incorporating the latest changes. I would greatly appreciate it if you could kindly review it at your earliest convenience. Thank you!

Margin Difference:

The margin difference should be 16px. Please ensure the font applies the correct line-height and font-size. Also, check if the height is fixed at 30px—it might not be necessary. Kindly review other areas to ensure consistency.

Spacing Between Input Fields:

The space between input fields should be 12px, except for the "Value" field, which is currently 8px. Additionally, the spacing for this sequence (12px > < x < 12px) is currently 4px and should be updated.

Remove Margins Around !(:

The !( element has an 8px margin on both sides, which makes it feel too spaced out. Removing these margins would help with better alignment.

Prevent Breaking for < x <:

It would be great if < x < stayed on a single line instead of breaking.

Spacing Below Input Fields:

The space below the input fields and above the "Confidence in Detection" title should be 24px. At the moment, it appears larger than expected. Please adjust this and check for similar spacing issues in other areas as well.

Please see the attached image for guidance on where these changes should be applied.

Here is a reference link https://www.figma.com/design/o68C5chnYwY9Gg6D7uk5JX/CLUMIT-V1.0---READY-FOR-DEV?node-id=3450-143484&t=HuAzx0xq88KUc63s-1 to cross-check the actual design and ensure consistency.

@jinjoolee07 I have fixed everything you mentioned, and I will make sure that screenshots are available in a separate communication channel.

Everything looks great! Just a few minor adjustments:

Could we adjust the width of the modal to 948px?
Can we remove the extra whitespace below the last Response section?
For the Name* field, it doesn’t need a margin below it—would it be possible to remove that?
I noticed the Value input fields (String, Integer, Float) have different widths. Could we make them a fixed width for consistency?
For th.input-group-heading, I think we can remove the height: 30px;.

@jinjoolee07 I have fixed what you mentioned, and I will make sure that screenshots are available in a separate communication channel.

I think a quick sync session would help things get sorted, so let me ping Div tomorrow in the morning!

Can we remove the extra space below the last Response section?

To prevent scrolling by taking up space when elements are not visible on the screen, I replaced the attribute visibility: hidden; with the attribute display: none; in custom-select.js and modified all related CSS codes. Attached is a description of the related ChatGPT: https://chatgpt.com/share/675ffbe9-5794-8012-b8a5-3ee65755bbd6


[WIP] Add eclipse plugins

This PR adds a function to create a bin/eclipse file for a given Eclipse derivation such that a given list of plugins are available to that Eclipse. A number of initial plugins are provided. Example usage:
{
  myEclipse = with eclipses; eclipseWithPlugins {
    eclipse = eclipse_sdk_45;
    plugins = with plugins; [
      anyedittools emacsplus
      findbugs color-theme
      checkstyle eclemma testng
    ];
  };
}

Cool! I've wanted this for a long time :-)
Why is it marked as WIP (work-in-progress)? What is missing?

@bjornfor Documentation (especially needed when packages cannot be installed in the "standard" way, i.e. via nix-env -i).

Yeah, this will need some documentation. Also I'm still not entirely certain whether the approach taken by the eclipseWithPlugins function is the best. I think it is pretty convenient now that I have used it for a few days and I especially like that the eclipse executable is the only thing exposed in my Nix environment. But perhaps it could be better?
One improvement that I would like to make for eclipseWithPlugins is to support plugins that provide their own executables. In particular I'm thinking about Eclim.
By the way, while the WIP is in progress I reserve the right to force push at will. I have, for example force pushed in a change that allows to set custom JVM arguments in the Eclipse ini.

How about exposing buildEclipsePlugin and buildEclipseUpdateSite to end-users? (Maybe under pkgs.eclipses.plugins.*?) That would make it easy to use out-of-tree plugins.

@bjornfor, good idea. I will make that change.

Suggestion: make "meta" optional (for example, "meta ? {}") in buildEclipsePlugin and buildEclipseUpdateSite. This is mostly a convenience for out-of-tree plugins.

buildEclipseUpdateSite takes a "version" parameter, but does not use it.

Again thanks for the good comments. I've added a commit to minimize the number of arguments these two functions require.
I've also started writing a bit of documentation in the nixpkgs manual, as a new subsection "Eclipse" in the "Package Notes" section. Though I haven't gotten very far on that yet.

@rycee: Good. Btw, I think personally I'd keep the "src" parameter mandatory, because I don't think there is a use case for using the function without "src" and it makes it easier to understand how to use the function.

There is a plugin that does not work with this PR, it's called GNU ARM Eclipse (http://gnuarmeclipse.livius.net/blog/). A plugin zip file can be downloaded from sourceforge[1] -- this is the file I use. I'm not sure if this plugin is packaged in some weird way, or if simply this PR's way of handling plugins does not work for all.
Now, to the problem. When creating a new project with the GNU ARM Eclipse plugin[2], the project creation wizard fails at the end when trying to copy a template file:
Condition 7--> Process 1 (ilg.gnuarmeclipse.templates.core.ConditionalAddFiles)-->Error: Add Files failure: template source not found: file:/nix/store/6fir1p91y0nk6svpghyb6yzjyia2klvb-eclipse-cpp-4.4/eclipse/../../6d35mpm7a7kv1g00nz8hpi8533gaf9ya-eclipse-gnuarmeclipse-2.8.1-201504061754/eclipse/dropins/gnuarmeclipse-2.8.1-201504061754/plugins/ilg.gnuarmeclipse.templates.core_<IP_ADDRESS>504061754.jar!/templates/common//src/main/main-100-include.c

The .jar file in the error message exists, and within it there is also this /templates/common/src/main/main-100-include.c file that is also referred to (I'm guessing the double-slash in the error message is ignored). So as far as I can see, it should have been working. But it is not.
I compared the plugin directory created with buildEclipseUpdateSite and the official way (Eclipse -> Help -> Install New Software... -> Add... -> Archive...). With buildEclipseUpdateSite I get directories only in features/ and .jar files only in plugins/. But when installed the official way, the plugin (or eclipse) even has converted some (but not all) of the plugins/NAME.jar files into plugins/NAME/ directories. In particular for this plugin, it has extracted the *.templates.core_*.jar file that the error message refers to. Installing the plugin the official way works fine, the template file is found.
Hm, what to do? Does the plugin contain info about whether some .jar files should be extracted?
I think I remember seeing somewhere that eclipse can be invoked with some arguments to install a plugin, basically the programmatic way to do "Eclipse -> Help -> Install New Software... -> Add... -> Archive...". Or am I dreaming?
[1] http://cznic.dl.sourceforge.net/project/gnuarmeclipse/Current Releases/2.x/ilg.gnuarmeclipse.repository-2.8.1-201504061754.zip
[2] Create new "C Project", select any of the "STM32..." alternatives and press enter a couple of times (accept defaults) to complete the wizard.

Playing around with info from this link: http://stackoverflow.com/questions/23946703/eclipse-commandline-to-install-plugin-from-remote-zip (also works with local zip).
Basically:
/nix/store/6fir1p91y0nk6svpghyb6yzjyia2klvb-eclipse-cpp-4.4/bin/eclipse \
  -application org.eclipse.equinox.p2.director -noSplash \
  -repository file:///home/bfo/nixpkgs/ilg.gnuarmeclipse.repository-2.8.1-201504061754/ \
  -installIU ilg.gnuarmeclipse.packs.core

Issues:

This installs into ~/.eclipse/org.eclipse.platform_4.4.0/plugins/. Need to find a way to install to arbitrary directory. -help reveals plenty of options, hopefully it already exist.
Each "IU" must be specified on the command line. Need to find a way to install "everything". Possible hack: use -list operation to get all IUs and use shell to transform it into a comma-separated list for -installIU.

It's interesting to note that the -list operation on GNU ARM Eclipse reveals that some "IUs" are "jar" and some are not:
$ /nix/store/6fir1p91y0nk6svpghyb6yzjyia2klvb-eclipse-cpp-4.4/bin/eclipse -application org.eclipse.equinox.p2.director -noSplash -repository file:///home/bfo/nixpkgs/ilg.gnuarmeclipse.repository-2.8.1-201504061754/ -list
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
201504061754.ilg.gnuarmeclipse.category=<IP_ADDRESS>X7s7icNPLHh8Ecy9dreSyo_r
ilg.gnuarmeclipse.codered=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.codered.feature.group=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.codered.feature.jar=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.core=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.debug.core=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.debug.gdbjtag=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.debug.gdbjtag.jlink=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.debug.gdbjtag.jlink.feature.group=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.debug.gdbjtag.jlink.feature.jar=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.debug.gdbjtag.openocd=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.debug.gdbjtag.openocd.feature.group=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.debug.gdbjtag.openocd.feature.jar=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.debug.gdbjtag.qemu=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.debug.gdbjtag.qemu.feature.group=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.debug.gdbjtag.qemu.feature.jar=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.debug.gdbjtag.restart=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.debug.packs=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.doc.user=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.doc.user.feature.group=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.doc.user.feature.jar=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.managedbuild.cross=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.managedbuild.cross.feature.group=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.managedbuild.cross.feature.jar=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.managedbuild.packs=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.packs=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.packs.core=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.packs.data=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.packs.feature.group=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.packs.feature.jar=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.packs.ui=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.templates.core=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.templates.cortexm=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.templates.cortexm.feature.group=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.templates.cortexm.feature.jar=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.templates.freescale=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.templates.freescale.feature.group=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.templates.freescale.feature.jar=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.templates.freescale.pe=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.templates.stm=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.templates.stm.feature.group=<IP_ADDRESS>504061754
ilg.gnuarmeclipse.templates.stm.feature.jar=<IP_ADDRESS>504061754
Operation completed in 57 ms.

In particular, the troublesome ilg.gnuarmeclipse.templates.core from my previous message, is not listed as a a "jar".
Inspecting the jar/non-jar state of IUs might be a way forward, although it feels hackish. If we can make eclipse install the plugin itself, into an arbitrary directory, I think that'd be the best.

No... wait. It seems the jar/non-jar output from -list does not correspond 100 % with whether the final output is plugin/NAME.jar or plugin/NAME/. I'll do some more testing.

@bjornfor, I had hoped to avoid worrying about unpacking bundles but I guess it was inevitable :-) In any case, I've added a commit now that should enable unpacking for those plugin JARs that indicate (through their manifest file) that they want to be unpacked. Please give it a try with gnuarm, I did a basic try myself and I was at least able to create a project using the wizard.
I think installing through Eclipse itself would be nice but I'm a little worried that it would make the installation have a runtime dependency on the Eclipse that was used to install it. This might be an unfounded worry, though, and even if true probably wouldn't be a big problem.

@rycee: Awesome! Thank you!

Haven't really had time to work on this the last couple of days but I've now finished up a bit of documentation. Please have a look at see if it makes sense. If it is OK I think I'm OK with moving this out of WIP and hopefully have it merged if no further issues are found.

Looks good to me.

Thanks! I didn't actually know that the wildcard is optional. Removed it from the documentation.

@rycee: Very nice! (Much better than what I wrote.)
Do you want to do some commit squashing before I merge?

@bjornfor: Thanks for the praise. I think the commits generally make sense on their own without needing to be squashed further. I did squash one commit with only a few fixed comments. But unless there is some specific concern I think I'm happy with them as-is.

Pushed to master (commit c71d44c724be7ca87c5e426bab350b7261678430 with parents). Thank!

@rycee did you try to package Eclim? I want it but can't find it in nixpkgs, then I found this post.

@joelmo, unfortunately I never made a serious effort to package Eclim. It is not as straight forward as most other Eclipse plugins and I just make due with the Emacs+ Eclipse plugin.


Delay in metrics appearing in exporter

Hi,
I have noticed that sometimes that there is a delay from when metrics are returned by the firehose exporter compared to when they appear from the firehose running "cf nozzle". Is there a reason for this delay? It's most noticeable when the exporter is first started, because the metrics are totally missing until a while after.
For example, the rep CapacityTotalMemory is emitted every 60 seconds from Firehose, but there is usually a delay of more than 60 seconds until the metric is shown by the exporter.
What is the reason for this?

Where did you notice the delay? When hitting the /metrics endpoint at the firehose_exporter or looking at the prometheus/grafana console?
For the former, there should NOT be any delay, as-as soon as the nozzle receives the metric, it stores it, so hitting the endpoint should return the metric.
For the latter, the scrape_interval set at the prometheus bosh release affects how prometheus scrapes the firehose_exporter. By default is 1m, this means that in the worst case scenario (and using that default), it can take 60seconds to show up at prometheus.
w/r/t that is more noticeable when it's started, I'm assuming here that you notice this at the prometheus/grafana console. This may happen when prometheus uses the file service discovery approach. The bosh_exporter is configured to be scrapped every 2m, and the service discovery file is not created until the 1st scrappe. When prometheus finds that file (after 2m when hitting the bosh_exporter endpoint), prometheus will detect a firehose_exporter, and then it will start scrapping it after 1m. So to summarize, it may take at least 3m when prometheus is started to start showing metrics from prometheus.
Hope this clarifies your question.

Thanks for quick reply. I am in fact talking about the /metrics endpoint.
I pulled the project locally and started digging into the code. I noticed that when I replaced 	n.messages, n.errs = n.consumer.FilteredFirehose(n.subscriptionID, "", consumer.Metrics)
in consumeFirehose() function with
	n.messages, n.errs = n.consumer.Firehose(n.subscriptionID, "")
that the metrics DID come in immediately. I figured that means this a bug with noaa. However, I pulled in the latest noaa project, and used their firehose sample project on the same CF Firehose wss. I was able to get the metrics immediately on time regarless if I used any of those two lines of code quoted above.
I am currently investigating the difference between running the FilteredFirehose function in the exporter versus the sample firehose application. I have double checked that I am accessing the same noaa project by putting a print statement that displays when running either the exporter or the sample project... (I had to remove the vendored noaa and used the one installed in my GO path to test this)

@andrewghobrial Interesting, please keep me posted.

@frodenas So my problem is that I had multiple firehose exporter instances accessing the same firehose with the same subscription id (using the default environment var value "prometheus"). So according to https://docs.cloudfoundry.org/loggregator/log-ops-guide.html this causes the metrics to be split across instances. I was not aware of this, so giving each exporter a unique subscription id seems to fix the problem. The sample application had a different default subscription id and that's why it always received the full metrics.
I am not sure why n.messages, n.errs = n.consumer.Firehose(n.subscriptionID, "") also fixed the problem, but that would be an issue with noaa.

I would say it would be useful to have an option to have a randomly assigned subscription id. Otherwise, I have to deal with that externally if I have to run multiple instance of the exporter.

Thanks @andrewghobrial for the heads up.
Out of curiosity, why do you want to have different subscription ids? if your prometheus instance is scrapping all firehose_exporters, then you will always get the data, even when using the same subscription id. Most of the rules and dashboards at the prometheus-boshrelease are already tunned to support multiple firehose instances.

I'm currently using the exporter directly without a prometheus instance to cache the firehose metrics for my app. Each instance of my app has its own exporter instance, so for me it makes sense for each exporter to be independent.

Understood, thanks.


Fix another {% raw %} tag.

I fixed the syntax of another {% raw %} tag so the site would build.
Without this, you get Syntax Error in 'raw' - Valid syntax: raw in release-notes/docker-engine.md
I built this locally and it works!
I think this applies to any ref which has this line.
Follow-up to https://github.com/docker/docker.github.io/pull/4237

Thanks, again, @parkr - so odd our local Jekyll building isn't running afoul of this...

Thanks, again, @parkr - so odd our local Jekyll building isn't running afoul of this...

It did for me! I got the error when I ran bundle exec jekyll build. I also got these warnings:
    Liquid Warning: Liquid syntax error (line 202): Expected end_of_string but found colon in "{{Name: "tag-1"}}" in apidocs/cloud-api-source/source/includes/node.md
    Liquid Warning: Liquid syntax error (line 118): Expected end_of_string but found colon in "{{Image: "tutum/hello-world", Name: "test", Target_num_containers: 2}}" in apidocs/cloud-api-source/source/includes/stack.md
    Liquid Warning: Liquid syntax error (line 299): Expected end_of_string but found colon in "{{Name: "hello-world", Image: "tutum/hello-world", Target_num_containers: 2}}" in apidocs/cloud-api-source/source/includes/stack.md


Version bump to 2.92.0

Auto-generated by fastlane 🤖
Changes since release '2.91.0':

Don't allow spaces in IPA file name being uploaded to ITC (#12321) via Josh Holtz
[match] Correct how match handles enterprise adhoc (#12281) via Josh Holtz
add option in cert for giving a specific output filename (#12048) via j2shnz
Stabilize tests by setting all android sdk path environment variables (#12312) via Josh Holtz
[swift] give lane_context return_type of hash_with_strings (#12313) via Josh Holtz
[spaceship] add preorder to availability (#12311) via Josh Holtz
Fix force output files on trade_representative_contact_information (#12290) via Yusuke Arakawa
Fix sample code in spaceship DeveloperPortal document (#12307) via Kenta Kase

My current version is 2.89.0, recently updated several versions, the latest version is 2.92.0, I use "fastlane update_fastlane" upgrade, but always upgrade not up, ask for help, thank you.