Good work. That is one that needed to be optimized :)
Do you have profiler stats/results on other most called, or time most spent
in, functions? It would be good to list them so anyone out there could step
up to challenge themselves with optimizing those functions. Just an idea...
-
+1 on co-existence, of include+includes, for a release or two, but totally
removal by 1.0.
As for the strict enforcement of only declared elements and properties for
tasks/types, I had done some work on that a long time ago. Take a look at
the Element.AttributeConfigurator.InitilizeElement() code
Yep,
I would agree that functions are a more powerful way to express these
properties. We have talked about this for a while. But I would like to
depreciate these over a few builds before actually remove them completely.
This will cause some serious problems with peoples' build files (and
and NANT. I've seen from practice that when
there are subtle differences between 2 build environments, many hours
can be lost in tracking down an issue.
Thanks,
Bruce
-Original Message-
From: Scott Hernandez [mailto:[EMAIL PROTECTED]
Sent: Saturday, May 01, 2004 11:15 AM
To: Gert
Yes, for a release we should not dist the pdb files.
What is the NAnt SDK? Would that include the parts of the source tree that
aren't needed at runtime unless you are building nant? I would assume this
would include anything needed to build tasks, functions, or extensions. An
example would be
Why do we need the managed executable (?) and the managed dll? If this is a
win32 only binary, I would rather not see it in our dist.
- Original Message -
From: Clayton Harbour [EMAIL PROTECTED]
To: Gert Driesen [EMAIL PROTECTED]; Simon Steele
[EMAIL PROTECTED]; Nantdev
[EMAIL PROTECTED]
+1 on WebDAV tasks. This is something that will be more and more useful in
the future. It sounds like a lot of new server projects are providing webdav
file access.
In fact, I believe one of the deployment options for Subversion is via
webdav. This would really simplify the requirements to do a
Also, the Wiki is a great place for this type of info; it can be updated by
users directly. :)
http://nant.sf.net/wiki
- Original Message -
From: Gert Driesen [EMAIL PROTECTED]
Perhaps first post it to the list for review, is that ok for you ?
- Original Message -
From:
+1
As far as I understand it, branching is done from the head (or any tag I
guess). As for blogging, go for it. Posting to the dev list is probably also
a good idea. Anon CVS access is rather behind, and less reliable. It may
make sense to post on your website a zip of the tree/dist when you want
Seems like the flow scope should be called local in C#/programming
terms, and local would be private/container-only scoping. Having global be
the default is a good call, but only in come case, as you have identified in
if//foreach//etc.
I'm sure we will be able to say more with a patch; so we can
Having support for our own FileInfo+URI object could be useful. This would
support either relative file paths, or uris. It would resolve them and
provide useful information if there were errors. We already do this in
places, and having this code in one place where tasks could use it would be
a
+1 on URI backed properties. Can we also do a FileInfo_Or_URI setter too
(I'm not sure how this would work...)? In some cases it is an or option.
- Original Message -
From: Gert Driesen [EMAIL PROTECTED]
Ian,
[snip]
Let me know if you'd want me to add support for properties backed by
Nested expression support sounds like a must, no? Somehow I thought our
expression engine already supported this.
- Original Message -
From: Jaroslaw Kowalski [EMAIL PROTECTED]
[snip]
BTW. Gert, what do you think about allowing sub-expression evaluation in
strings so that we could
I hope so Nick.
personal-aside
This is still on the list, but as we are a collection of individual
developers, each with our own interests, it sometimes turns out that one of
those individuals can re-focus the direction of the group. I think all it
would take to get filterchains going is for
I'd lean the other way and require that the script be basically a full
namespace/class def. (or no function decl. at all).
script language=C#
namespace test {
[FunctionSet(test, Test)]
class myFuncs : FunctionSetBase {
[Function(test-func)]
public string Testfunc( ) {
James,
I've made a few changes (please let me know if it still works for you) and
committed it to NAntContrib. Would you like cvs write access to NAntContrib
repository on sf.net? :) If so, just send me your sf.net userid.
Thanks for the work :)
- Original Message -
From: James C. Papp
1.) If you have the time, go for it!
2.) Improvements are great.
3.) Adding support for this is a good idea. At the solution and project
level seems like a nice one to have too.
- Original Message -
From: Martin Aliger
Hi all !
1/
Do you think, that now is good time to some cleaning
I'm inclined to put new tasks like this in NAntContrib. Does anyone have a
major complaint about that? We can always move it later.
As for your implementation; It seems okay. I'm a little confused about what
you've done for the on attribute. It looks like you are not expanding,
supporting
This sounds interesting but I'm not sure I follow. Can you explain a little
more?
The concept of inputs/outputs to tasks (when called from other tasks) and
adding context info so tasks know about following task, and preceding tasks,
sounds interesting. But I'm not sure how this ties in here.
think.
- Original Message -
From: Ian MacLean [EMAIL PROTECTED]
To: Scott Hernandez [EMAIL PROTECTED]
Cc: Nant-Developers (E-mail) [EMAIL PROTECTED]
Sent: Tuesday, January 06, 2004 8:21 PM
Subject: Re: [nant-dev] Inter-Task XML Communication (WAS: new xml type)
Using xpathnavigators
The reason, please correct me in my memory is off, for the deprecation of
the force attribute was because of the change to the call/ task to do
this by default. The idea was that if you want the behavior of dependencies,
you will use that mechanism (via the depends attribute of the target), but
if
This a great goal. A single binary dist for all runtimes sounds great.
+1
I will try to look this over at the start of the week.
- Original Message -
From: Jaroslaw Kowalski [EMAIL PROTECTED]
Hi!
As Mono is progressing towards 1.0, I think we should start thinking about
a
binary
The call/ task executes the target and all dependencies (whether they have
executed already or not, and only once).
Maybe to get the correct behavior we need to add a forcedepends attribute to
control the execution of the dependencies. It seems strange to introduce a
depends/ task when it is
I am not Gert, but we are branched for the .84 release Please check new
features into cvs (HEAD) and fixes for the release into the .84 branch.
- Original Message -
From: Matthew Mastracci [EMAIL PROTECTED]
To: Gert Driesen [EMAIL PROTECTED]; Nant-Developers (E-mail)
[EMAIL
This sounds interesting. Maybe we would want to introduce some
xpathselection elements to replace your property example. Properties in this
example would probably be a little confusing to the user since it isn't
really a regular property (the value is retrieved via xpath, not only via an
There will be a new RC in the next day or two (as I hear). The expression
stuff will not make this release.
But it is now in the cvs HEAD, meaning that it is slated for the next
release. It still needs a lot of testing, but we hope to get a expression
feature complete version soon after the
Yeah, I was imagining somewhere in the first two weeks of the new year. :) Not before
it!
quote who=Gert Driesen
- Original Message -
From: Scott Hernandez [EMAIL PROTECTED]
Personally, I'd like to see a .85 release with expression support near the
first of the year!
I'll try to get
See comment below.
From: Gert Driesen [EMAIL PROTECTED]
From: Clayton Harbour [EMAIL PROTECTED]
[snip]
[TaskName(cvscheckout)]
[TaskName(cvs-checkout, Obsolete=true, ObsoleteMessage=Use
cvscheckout
instead.)]
public class CheckoutTask : AbstractCvsTask {
What do you think ? Got any other
Those files are named based on an old system that
was used to create them (fogcreek something or other).
You should name your new files something more
reasonable. Those files will get renamed when someone puts in the request for
sf.net admins to rename them in cvs. You can edit them
+ description of all parameters.
Jarek
- Original Message -
From: Gert Driesen [EMAIL PROTECTED]
To: Scott Hernandez [EMAIL PROTECTED];
[EMAIL PROTECTED]
Sent: Tuesday, December 09, 2003 7:21 PM
Subject: Re: [nant-dev] Naming of documentation files
would be great if we could
a debug and release build (without having to specify this in the
build file).
Well, It is a little confusing how things should
work, but they now work like they used to.
- Original Message -----
From:
Scott Hernandez
To: Buc ; [EMAIL PROTECTED]
Sent: Monday, December
My first inclination is towards A for Q1. This would mean that all
expressions, and property expansions, are like this ${expr}, correct?
XSLT uses braces for inline evaluation in attributes and XPath variables are
$ prefixed. In our case it seems like once we start a expression block,
denoted by
Good point about side-effects. This does paint a clear distinction. But then
you get tasks like xmlpoke, with no corresponding xmlpeek; this might make
the user search around for the expression/function to use, or even assume
that this functionality does not exist.
I'm inclined to give this a day
Talk away, but this may also be a good discussion to start in the
NAntContrib list. That is most likely where they will be stored, and
developed:)
I would like to keep NAnt-Dev focused on NAnt-Core idea and dev issues. Not
that I don't like to discuss new task ideas, but focusing things into
I like it a lot. This is definitely something I want to be able to do with
our (internal) nant builds so we can easily identify our build type and
config from the binaries.
If you are fine contributing it, I think we can review it and put it under
source control.
Please post a compressed patch
Title: In case you haven't seen this yet
Thanks for the update Alex. I didn't read the
originalarticle, but this seems like a
prettyshortsynopsis.I'm looking forward to seeing msbuild when
it gets closer to release.
As the MSBuild PM, do you know if the team has
considered any interop
I have committed both these files to the test suite in NAnt.Core.
Thanks for the tests Michael.
- Original Message -
From: Michael Aird [EMAIL PROTECTED]
Subject: [nant-dev] Regex Unit Tests: RegexTest.cs
---
This SF. Net email is
I don't want branching done unless we have to. Unless there is a reason we
*need* to branch, then we should not.
We should change our release plan on the wiki.
http://nant.sourceforge.net/wiki/index.php/ReleaseProcess
Please see additional comments inline.
- Original Message -
From:
Okay, I've just given some thought to how we use cvs to tag and branch our
releases. Here is what I think we should talk about adopting as our policy.
We should do the following...Lay down rtags (tags on the server) when we do
a release (or milestone/beta/rc). This will allow us to get back to
David,
You are correct, the nantschema task is under construction, and incomplete. I am
working
on getting it back into shape to support collections and nested elements. It will get
done after I'm finished with the new userdoc stuff (which is really close).
I'm more than happy to hear about any
more documentation = good... holes in docuementation = !good
I like good. Anyone want to volunteer? ;)
quote who=Martin Aliger
Hi all,
I notice that our current docs do not say anything about nant.exe.config. I
this there should be section about it discussing frameworks settings,
That is a negative Jason. We will always distribute source with our binaries. We will
also always include help/documentation.
We will also not distribute multiple, and redundant, binaries. There is no reason to
distribute 1.0 and 1.1 compiled versions of nant.
Our goal is to support all .net
The [FileSet] attribute used to describe a BuildElement (nested xml element in a task
or
datatype) is going to be removed soon. It is a relic of the days before the generic
BuildElement and provide no extra information at this point. If you are developing
tasks
please replace any [FileSet(name)]
2003, Alex Kipman [EMAIL PROTECTED] wrote:
From: Scott Hernandez [mailto:[EMAIL PROTECTED]
Do you know if microsoft has any submitted or ourstanding patends on
the technologies included in the MSBuild stuff?
This is a tricky question but I'll do my best to answer it openly
and honestly
The projecthelp uses xsl templates to transform the source document (build
file) without doing any includes (or actually running any tasks; like
property/). This makes it pretty useless in many cases.
At this point I think we need to re-write the projecthelp stuff to load the
document, run (the
Yep. We have discussed supporting the replace task but have opted to wait
until we implement filterchain/filterset functionality in the core. This is
on the list of things to get in there, but it will probably be a release or
two away;it will be in the 1.0 release for sure :)
Maybe we should
Yep, should be fixed in cvs. Thanks.
- Original Message -
From:
Martin
Aliger
Hi,
one other (minor) error in new docs:
http://nant.sourceforge.net/nightly/help/tasks/available.html
contains line
type
enum
The type of
Mitch,
If anything, I would think that the xpath expression language would be a
good start. I'm not sure if I would want an expression language included
with nant though. This could however be an addin, or extension. Adding
expressions (as we have discussed before) seems to me to be just one more
Yep. The caching issue is actually on my machine though. That is where the
new files are. I guess the sf.net cache hasn't been updated by me; since
that is a manual process :)
The nightly build has the latest changes, but it failed last night because
of sf.net connection problems.
- Original
I'm planning on changing the output directory to
include the framework and platform before the version. The current style is
"build\nant-0.8.4-debug" and the new style would be
"build\net-1.0.win32\nant-0.8.4-debug"; with the bin directory moving one level
deeper.
Does anyone have any
Hi all,
I am in the process of making more changes to the
userdocs. In the past we had referred to the userdocs (at leastin the
buildprocess)as the task references. But now I'm changing everything
so that the whole website (doc cvs folder plus ndoc userdocs) will be included
in the
Eric, can you give us a list of the steps of how you upgraded and went back?
Did you just unzip the distribution to a directory? Are you sure you are
using the version of nant you expect? Can you check your path for other
copies of nant.exe? Are you running nant.exe from a network share?
I have
: Jaroslaw Kowalski [EMAIL PROTECTED]
To: Eric Fetzer [EMAIL PROTECTED]; Scott Hernandez
[EMAIL PROTECTED]; NAnt Developers [EMAIL PROTECTED]
Sent: Friday, October 24, 2003 2:46 PM
Subject: Re: [nant-dev] Upgraded then Downgraded and It won't work anymore
Go to:
Start | Settings | Control Panel
Hi Tim,
There are two sources to the end user documentation that we ship. The first
part is just html and is in the doc part of the cvs tree. These files can
be edited manually. The Task List and Task Documentations files are
generated during a build by using ndoc from the userdoc target of
I have done a little work on the
userdocs.
I have made the following changes:
1.) Reworked the Nested Elements section to include
inline docs for level 1 (it doesn't inline all docs down the chain, but just the
first one) and links to the full docs
2.) Reworked the Attributes section
Yes, this has always concerned me and is something I think we need to remedy
on any future contributions. We need some kind of declaimer/license
agreement that people submitting patches agree to. Then we can be free to
make these kinds of changes without contacting a hundred people, or keeping
All of these scenarios should be allowed, IMHO.
- Original Message -
From: Brant Carter [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Friday, October 10, 2003 10:02 AM
Subject: Re: [nant-dev] Licensing
I think we should ask ourselves what types of uses we would want NAnt to
be
- Original Message -
From: Matthew Mastracci [EMAIL PROTECTED]
Ian MacLean wrote:
Matt,
what are your specific objections to a BSD style licence ? Is it the
greater permissiveness or just that its not GPL ?
My largest concern is not that a company can use BSD-code, but rather
Yeah, or we could just create a page on nant.sf.net that details what to do,
and use that url. Then we can always change the procedure without editing
the source code.
I'd also like to look into some kind of automated bug collection process.
But that is much farther down the road. It would be
I would say that we should just leave the old code licensed under the old
license (not change any prev. distribution that is). Then we will go forward
with the new releases under the new license (since we are still pre-1.0). At
this point the copyright holders number just a few. I feel like we
I'd vote +1 on using filterchains and -1 on filtersets. It seems like with
the right combination of standard filterchains we can replace the
functionality of filtersets all together.
- Original Message -
From: Gert Driesen [EMAIL PROTECTED]
Sent: Tuesday, October 07, 2003 11:19 AM
I would be interested in this if it could be included without altering the
core code (much). What do you think the nantdesigner would look like?
What benefits would this really give? It sounds like an interesting idea,
but don't the vsnet addin, nantpad and other tools supply this type of
support
I'm not sure what user experience this would provide. What kind of designer
would the nant stuff look like? Would it be like the xsd editor, or database
schema editor, with something like a flow diagram of tasks? Would it be a
buff'd up tree control, like the vsnet addin is now? I understand that
I'm not sure what user experience this would provide. What kind of designer
would the nant stuff look like? Would it be like the xsd editor, or database
schema editor, with something like a flow diagram of tasks? Would it be a
buff'd up tree control, like the vsnet addin is now? I understand that
Hi all,
This is a reminder of some of the things we should remember when working
with xml data in .net and specifically nant code.
We need to use the namespace manager for all xpath expressions; use our
nant prefix for all elements in xpath expressions.
This is used in the following cases:
I have updated things a little bit, but handling of arrays and collections
is not ready yet. I hope to get changes in by the end of the week. I had
really hoped to get stuff working before I hit the road, but oh well. :)
---
This sf.net email
I'd like to start littering our code with declarative security statements.
It would be good to start to lock down what nant needs from a security point
of view so we can easy make a statement like our code is secure.
Does anyone have much experience with .net declarative security and the best
stuff.
- Original Message -
From: Scott Hernandez [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Friday, September 19, 2003 2:43 PM
Subject: declarative security
I'd like to start littering our code with declarative security statements.
It would be good to start to lock down what nant
Sascha,
I guess I have this question... Should both these functionalities be
combined in a single task?
Why not just support two sep. tasks.
concat ...
.../
/
filter .../
That leaves the choice to the user about what they want to do. They can mix
and match anyway they want.
-
The build server I had been running at my old apartment had some power
problems a few weeks ago (and was intermittent for a while before then
because of changes to the cvs tree and sf.net problems). I have since
returned home for a little while and brought it back to life. Nightly builds
should be
Hi all,
I have been away from development for the last 4 months or so, and may be a
little longer still. I hope to have a few weeks, or months, of time back to
catch up with stuff before I take off again. I feel really out of things
will all the great improvements and changes that have happened
+1
- Original Message -
From: Ian MacLean [EMAIL PROTECTED]
To: Erick Thompson [EMAIL PROTECTED]
Cc: NAnt developers (E-mail) [EMAIL PROTECTED]
Sent: Tuesday, September 02, 2003 7:36 PM
Subject: Re: [nant-dev] Latest build not working?
Erick,
I'd prefer to change the nant vs projects
You can set vs.net to start an external process when debugging. This will
start the recently built nant with the current solution. Breakpoints and
such will work as expected.
That is the config I believe that Ian is suggesting.
- Original Message -
From: Erick Thompson [EMAIL PROTECTED]
quote who=Mark Griffiths
Scott, does your current build server log into CVS using pserver or ssh? It
seems that pserver access is intermittent at the moment.
-Mark
Anon cvs, but it running under my account which would work for ssh access. Later in the
build process files are scp´d to the
Just let me know when I should shut down the current build server. It is still working
as far as I know. :)
quote who=Gert Driesen
If no one else volunteers, I'll look into it.
On Mon, 2003-06-30 at 21:07, Geurts, James wrote:
Hey everyone. I'm sorry that I have not been able to get this
The other problem we will have, that we haven't really addressed, is in
describing the dependencies of some of the tasks. Take the MSI tasks as an
example. There is a lot of stuff that needs to be installed to actually use
it. It might be best to introduce the idea of a dependencies/requirements
I've pulled rc1 so no one accidentally uses it.
- Original Message -
From: Matthew Mastracci [EMAIL PROTECTED]
To: Nant-Developers (E-mail) [EMAIL PROTECTED];
[EMAIL PROTECTED]
Sent: Saturday, April 12, 2003 12:40 PM
Subject: [nant-dev] NAnt 0.8.2-rc2 available
The second release
]
To: Scott Hernandez [EMAIL PROTECTED]; Nant-Developers (E-mail)
[EMAIL PROTECTED]
Sent: Wednesday, April 02, 2003 9:49 AM
Subject: Re: [nant-dev] original exception is discarded
I agree that it's better to have too much info, but I don't it's a good
idea
to create temporary hacks ...
I've seen all
That assemblyname attribute is really a nunit assemblyname(FilePath). It
really needs to be a full filepath to the file.
I have updated the NUnit2Test to resolve the path relative to the project;
resulting in a full path qualified string sent to nunit. This change will be
in tonight's nightly
One would have to be BuildIt (from ms consulting)
and other... I don't know.
http://msdn.microsoft.com/library/default.asp?url="">
- Original Message -
From:
brian.nantz
To: [EMAIL PROTECTED]
Sent: Tuesday, April 01, 2003 8:42
AM
Subject: [nant-dev] MS Build
I have updated the binaries to use the latest
stand-alone release of SharpZipLib. I also added an unzip
task.
Gordon,
I cleanup this code up last week. It now will run validators on all types;
even on enums.
- Original Message -
From: Gordon Weakliem [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Wednesday, March 12, 2003 2:16 PM
Subject: Re: [nant-dev] Custom validators for enums
This isn't a
The example is wrong. Remove the leading \ before SOFTWARE.
I will fix this when I get back in a few days.
quote who=Griffin Caprio
Can anyone point me to what I am doing wrong here? I
am trying to use the readregistry task:
readregistry property=vs.dir
I'm not very keen on mixing stuff into the foreach that leads to ambiguity.
I'm not sure what the correct solutions is, maybe something like this:
foreach property=foo type=File
in
fileset ... /
in
do
!-- stuff --
/do
/foreach
So you can either use in as an
Title: Message
That would be pretty cool. Anyone who has time on
their hands, please raise them... c'mon somebody has got to have some free
time!
I'd be happy to help too... :)
- Original Message -
From:
Gert
Driesen
To: Jeff McManus ; Nant-Developers
(E-mail)
Title: Message
Yes, that was a relic from a very short release,
which was laterpulled. It has been removed.
NAntContrib will be released on sf.net. The tasks,
will probably be released as a group, and the tools will probably get out one at
a time. There may also be a complete release of all
I want to reformat all the filesand do the
following:
1.) Wrap the license
info at the top of the filein a #region, which will make editing with
vs.net (and others I believe).
2.) Reformat all files removing tabs and following
the guidelines in the nant coding
and
claim the Regular Expression task?
-Griffin
--- Scott Hernandez [EMAIL PROTECTED] wrote:
Griffin,
Yep, something like the ant basename or dirname
task?
http://ant.apache.org/manual/CoreTasks/basename.html
http://ant.apache.org/manual/CoreTasks/dirname.html
I'd rather see
I don't think the result is confusing, but what type of validator would you
want to run? I guess it is possible that a future EnumValidatorAttribute
would limit the enum to only a few values.
Can you describe a usage scenario? (or are you just commenting on how things
should be?)
- Original
The builds were failing on the build server because the settings file stuff.
There was a problem with how the settings file was found (using the
incorrect path). With my changes to move the settings stuff into the config
file this should no longer be a problem. I will update the binaries manually
That is also what happened with the build server (sort of). After a nightly
build is done, the binaries are updated (on the build server). That means
the next run use the latest binaries from the night before. Now, this should
not be a problem, as we run the tests with this version of the
Sounds like a good feature... :)
+1
(In general I'd be happy to see the write-up without the code. If there are
any problems, they will come out in the tests, or from use. Other comments?)
- Original Message -
From: Matthew Mastracci [EMAIL PROTECTED]
This patch adds support for
+1, Please commit and people can try it out.
I have no problems with bugs in a dev tree as long as we find them and fix
them asap.
:)
- Original Message -
From: Matthew Mastracci [EMAIL PROTECTED]
To: Nant-Developers (E-mail) [EMAIL PROTECTED]
Sent: Tuesday, March 11, 2003 9:48 AM
+1 on release.
Where do you plan on putting the vsdotnet stuff? src/VS.Net?
- Original Message -
From: Matthew Mastracci [EMAIL PROTECTED]
To: Nant-Developers (E-mail) [EMAIL PROTECTED]
Sent: Tuesday, March 11, 2003 1:16 PM
Subject: [nant-dev] 0.8.2 release + Solution builder question
Griffin,
Yep, something like the ant basename or dirname task?
http://ant.apache.org/manual/CoreTasks/basename.html
http://ant.apache.org/manual/CoreTasks/dirname.html
I'd rather see a more generic regex task or something that can do
string/file/dir ops.
- Original Message -
From:
Dan,
No problem with the cross post. If you can't get an
answer, there is every reason to try again someplace else. :)
You can call NAnt directly (via the Project class),
but NAnt will shell out and call the compiler executables. So, your code will
not call out via the process object, but
The if task has 2 properties to handle what you are
describing. One is "propertyexists" and the other is
"propertytrue".
So, the following is what you want I think. (I have
updated the source so the existence check is done before the true check. It is
an AND operation if both are used.)
if
Yes, we plan to support loading properties from an
xml file, and/or some other configuration location. This has not come up, and
nobody has done any work on this, as I remember. I expect when we have a way of
specifying configuration info there will be a place to set global/default
Please don't cross post. (don't post to both lists
at the same time)
If it is a development issue, like a code change, a
release issue, or a bug,post to the dev list.
If it is a user issue, like how to write a
buildfile or use a task,post to the user list.
Also, please don't reply to any
Well, not to pick on you Philip, but I would much rather see extra files
left out. In your earlier post you include the bin folder which comprises
most of the size. If you didn't include that, but rather included a simple
build file or instructions or what to put where, then your post would have
1 - 100 of 214 matches
Mail list logo