« first day (2817 days earlier)      last day (363 days later) » 

00:00
REFRESH!
[Minesweeper] 65 Games Played. 38 Bombs Used. 8915 Moves Performed. 15 New Users
[rubberduck-vba/Rubberduck] 1 issues opened. 1 issue comments
 
3 hours later…
03:01
> Version 2.5.2.5906
OS: Microsoft Windows NT 10.0.19042.0, x64
Host Product: Microsoft Office x86
Host Version: 16.0.10383.20027
Host Executable: EXCEL.EXE

I get this using the above versions.
![image](https://user-images.githubusercontent.com/39154868/154881825-31d71ed3-ed29-409f-a7c6-8b4ed9af2513.png)

The text of the sub is
Private Sub cmdCancel_Click()
'
' cmdCancel_Click Macro
' Author: Michael Pickerill
' Date: 21/2/2007
'
txtPassword.Text = vbNullString
f
 
3 hours later…
 
5 hours later…
10:11
> Changing the order of the fakes seems to work:
```
Fakes.MsgBox.Returns 20
Fakes.InputBox.Returns 20
```

More generally, you need to set the MsgBox first to to all values that you want the Inputbox to have. The following does not work:
```
Fakes.InputBox.Returns 1000, 1
Fakes.InputBox.Returns 2000, 2
Fakes.InputBox.Returns 300, 3
Fakes.InputBox.Returns 4000, 4
Fakes.InputBox.Returns 500, 5
Fakes.MsgBox.Returns 1
```

but this does:
```
Fakes.MsgBox.Returns 1000, 1
Fakes.Msg
10:53
@Duga I guess InputBox internally uses MsgBox, which leads to these kinds of dependencies when faking both.
 
2 hours later…
12:57
@MathieuGuindon Why have you modified a failing test of my last PR (via a direct push to next), instead of telling me that it failed?
That test tested exactly that the issue was resolved.
> This change invalidates that the prior PR actually fixes the issue it was supposed to address.
The updated test validates that wrong behaviour is present.
13:43
@M.Doerner ah, the PR was merged "in the dark" without a working CI pipeline; by the time I realized a test was failing the build it was already too late and all I cared about at the time was that AppVeyor actually produced a build off next.. I should have left a trail somewhere (and perhaps checked-out the branch before merging, too), sorry for the miscommunication.
> Fixes #5947

This PR adds the the missing part to actually attach attributes to module constants. Previously, the attributes listener only saved attributes for variables, not constants.
@MathieuGuindon @Duga This is the missing part, and the revert of the modified test.
14:07
[rubberduck-vba/Rubberduck] build for commit 47c62f7d on unknown branch: AppVeyor build succeeded
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/5948?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rubberduck-vba) Report
> Merging [#5948](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/5948?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rubberduck-vba) (47c62f7) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/7c523c49df178d28cc222650
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/5948?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rubberduck-vba) Report
> Merging [#5948](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/5948?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rubberduck-vba) (47c62f7) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/7c523c49df178d28cc222650
> # [Codecov](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/5948?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rubberduck-vba) Report
> Merging [#5948](https://codecov.io/gh/rubberduck-vba/Rubberduck/pull/5948?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=rubberduck-vba) (47c62f7) into [next](https://codecov.io/gh/rubberduck-vba/Rubberduck/commit/7c523c49df178d28cc222650
14:34
[rubberduck-vba/Rubberduck] web-flow pushed commit 535ce210 to codecov-the-ever-so-manyeth: single-quote upload filespec for codecov
> null
@Duga yea, yea, I didn't add a text to the PR, I know
14:57
[rubberduck-vba/Rubberduck] build for commit 535ce210 on codecov-the-ever-so-manyeth: AppVeyor build succeeded
 
1 hour later…
16:23
Revert "Update MissingAttributeInspectionTests.cs"

This reverts commit e701c160a8a328dcabd4547ff39d0b039b590121.
[rubberduck-vba/Rubberduck] build for commit 47c62f7d on next: 97.58% (target 0.00%)
Save attributes for constants with the correct key

Previously, the attribute listener assumed that member attributes always referred to variables and used the corresponding declaration type in the key. This lead to a missing assignment of attributes to member constants.

Now,both options are evaluated and the correct key is used.
Merge pull request #5948 from MDoerner/FixDecOnConstAgain

Fix missing part for VarDesc on constants
[rubberduck-vba/Rubberduck] build for commit 535ce210 on next: 97.34% (target 0.00%)
Merge pull request #5949 from rubberduck-vba/codecov-the-ever-so-manyeth

single-quote upload filespec for codecov
@M.Doerner thanks!
Mornin' @MathieuGuindon! Good to see progress being made.
In my class, I had originally written these as Private Function..., but then decided to make them Private Property. Which would make more sense?
Private Property Get IsImportPeople() As Boolean
  IsImportPeople = this.ImportType = PeopleFile
End Property

Private Property Get IsImportLocation() As Boolean
  IsImportLocation = this.ImportType = LocationFile
End Property
There is no corresponding Let, so I guess Function would make more sense as it would avoid the Read Only Property warning, so code might feel cleaner.
(General question, not specifically targeted @Mug, just happened to follow my greeting to him.)
17:08
@FreeMan it's write-only properties that trigger a warning.. read-only properties are good! I think it's down to personal style: in this case a private property kinda makes sense because the value is derived from a particular state, not much going on there and it could conceivably become a public convenience/helper member that would make more sense as a property than it would as a function.
OTOH if it's just a helper method that's totally internal and wouldn't make sense or be useful if made public, then it's an implementation detail of whatever public member is using it, and then a private function makes sense for it too!
Also, is it within a class object? A property is an aspect of an object. It should describe something about the object state. A function makes more sense when it's not descriptive of the object but maybe something that object can collect for you.
So that a DataCollectingObject has properties that describe it's source and options. The data itself that is collected might be returned by a function. This separates the object settings from it's primary function.
@FreeMan yeah the website front-end is now authenticated, admin functionality is blocked for anonymous requests and GitHub users that aren't in the RD org! Now the hard part becomes securing the API back-end, but it's not too urgent and might not even be needed: a firewall on Azure could block unauthorized access to the API. I'd just want to leave an opening to be able to trigger tag metadata update on push.
So website status: need to finish repairing the xmldoc-parsing and the page layout for FeatureItem entities (that's the content coming from xmldoc comments in RD's source code)
..and then some polishing is needed for content-editing in the admin pages, and then it's pretty much good to go
17:30
So, if I understand correctly, @MathieuGuindon and @HackSlash, #ItDepends.
sigh...
:)
I think in this case, I'll leave it as a function because I just don't see a reason for it to be used externally. Of course, changing the object's interface later is to be avoided, but at least if I made it a public property, I would be adding and not removing, so I wouldn't invalidate any existing code.
Thanks!
I used to do the property procedure in a module but lately, I find that a function makes more sense. Keep in mind that in VBx, there is no distinction between a function and a property where there is in C# (e.g. Foo vs. Foo()) which is probably why it seems so identical. In a module, a function seems to be more "honest" in the sense that there is no pretense of a backing object. YMMV....
thanks
You could also have a module that contains project level properties if you are saying the project itself is the object the property is describing. If that's a distinction you want to make. That's the only place properties in a regular module make sense to me. There might be other cases I can't think of.
Global objects come to mind; if you have a Private Something As SomeLibrary.SomeClass in a standard module, it can make sense to expose it to the rest of the project through a Property Get - a function would be weird there I think.
I'd be convinced if there was a true distinction at the syntax level. But the way it is, we can't be sure that we're looking at a Foo nor Foo() and say, "aha, this is a property, and that is a function."
The whole point with the distinction in the first place was because property implies cheap retrieval whereas function implies some calculation to be done and may fail. (not necessarily the case but you get the idea).
17:45
Oh yes - a getter should never throw. A function could
tbh in .net a property's getter is really just a get_Thing() function with make-up
that's also true in all other languages. properties are just syntax sugar
but at least in C#, it's consistently enforced that you write property as Foo and function as Foo().
In VBA... good luck trying to get it to do If Date() Then and not see it prettified into If Date Then.
Maybe not the best example because it's a property in VBA.DateTime.Date
@MathieuGuindon Does some of that make-up include lipstick?
 
1 hour later…
19:05
Thank you, Access, for the silent crash then restart. :(
19:15
@Duga @MathieuGuindon bit quick on the trigger there... The damn upload still doesn't seem to add proper coverage across the whole project.
Hmmmmm it seems like the coverage runner we are using has been discontinued.
And it doesn't seem to produce the report format that codecov requires.
sooo ... guess it's time to change the coverage setup...
again
> **Justification**

Opencover has been discontinued. The maintainer recommends switching to [AltCover](https://www.nuget.org/packages/altcover/), which can produce LCov reports that are definitively parseable by codecov.
Maybe we want a different coverage provider, though (Cobertura?, ???).

Since OpenCover is no longer a thing, we should make the switch and sooner rather than later.

**Description**

A working coverage report for each PR
> I'm assigning this to myself to remind myself I want to work on this when I have time, but if someone has an urgent want to work on something like this I don't need to be the one to have done it :D
 
1 hour later…
20:51
@Vogel612, I've never done code coverage. After reading how OpenCover came and went I wonder if there is something wrong with the Microsoft recommended solution. Does coverlet not work? github.com/coverlet-coverage/coverlet
The recommendation is found here: docs.microsoft.com/en-us/dotnet/core/testing/…
 
1 hour later…
21:57
@HackSlash sounds like a good idea
I don't see anything wrong in that in particular
Being part of the .NET Foundation makes me think it's more likely to remain supported than a random open source project. That's a big assumption, and a gamble I suppose.
that same gamble holds true with any other alternative
I'm pretty new to unit testing in general. I usually only test really critical bits. I know my coverage is bad so I've never tried to quantify how bad it is.
 
2 hours later…
23:33
That gamble makes me wonder how many Silverlight projects were ported to UWP...
23:45
[rubberduck-vba/Rubberduck] 1527 stars vs. [decalage2/oletools] 1942 stars
23:57
LoL! Silverlight

« first day (2817 days earlier)      last day (363 days later) »