YAFLogo

Jaben
  • Jaben
  • 100% (Exalted)
  • YAF Developer Topic Starter
9 years ago
Access to the YAF.NET Source Repositories is now on GitHub: https://github.com/YAFNET 

YAF.NET Build Server is available here with the latest binaries: http://build.yetanotherforum.net 
Sponsor

tirion
  • tirion
  • 50.2% (Neutral)
  • YAF Forumling
9 years ago
Originally Posted by: Jaben 

Access to the YAF.NET Source Repositories is now on GitHub: https://github.com/YAFNET 

YAF.NET Build Server is available here with the latest binaries: http://build.yetanotherforum.net 



Jaben,

I want to see if I can help with development of the forum - I will definitely be adding some features for my own purposes as I'll be starting another instance of YAF.

But to be sure that my development is compatible with what you guys are doing and that I will be able to issue pull requests I wanted to ask few things:

1. How exactly are you publishing forum to certain environment? By using TeamCity? Do you have any resource I can read for more information on the topic?

2. Why are .config files tracked / in repo? Meaning - now that I've changed .config files for my local dev env I obviously can't send that commit to master. How do you guys deal with those files? You have local .gitignore?

Also my Visual Studio heavily modified .csproj files - do you use some other IDE? Or Visual Studio 2012?

Thanks in advance for your help.
squirrel
9 years ago
.config files are tracked in repo because the application needs a base set of config files for installation. Customization beyond that point is up to the user.

As far as I know, YAF is currently developed using VisualStudio 2010. That's what I use for any changes. There have been known to be minor errors in the repository as to what files are referenced in the project and which ones are not.

With compiling, there is no real 'target environment'. To compile YAF, you run a 'publish' against the "YetAnotherForum.NET" project within the solution. That will build all DLLS and create the uploadable package for a webserver.


To make changes to YAF and submit them:

Setup a subversion client on your machine and create a local repository - this will get you a snapshot of the current source. TortoiseSVN is a good client. It can be setup to continually check YAF source and has a good merge utility.
Any changes you wish to submit to YAF will need to be submitted as a pull request - the devs will evaluate the code and include it into the repository as needed. YAF currently does not allow 'unrestricted' contribution to the source. It has to go through a pull request and be added by a developer.

Depending on the nature of your upgrades/enhancements - there is the chance that a fork could be created - that would be a development team decision.
If you can't find it using the forum search, try my signature link -- searches this site using Google: Google is my Friend 
tirion
  • tirion
  • 50.2% (Neutral)
  • YAF Forumling
9 years ago
I've already downloaded the source using Git - will use that for source control rather than SVN. And I've already compiled the solution, got my local instance running. I am quite experienced dev (been developing ASP.NET websites since .NET 1.1) so I know the basics - however, I am puzzled as to how you do "advanced stuff" I mentioned:

1. Publish builds automatically (I doubt you are doing that manually as it is boring & time consuming process).

2. Related to #1 - how do you merge changes considering different devs are working on repo (I've saw Jaben, Ingo and vzrus have commited in last 15 days). I'm asking this since just opening project in my Visual Studio 2010 changed .csproject and now I can pull changes without stashing/committing.

I am just asking for more info because from what you are telling here (and from what I've read so far) - majority of stuff needs to be done manually (like if I needed to create pull request now I would need to juggle bunch of stuff for couple hours just to do it). And I doubt that's how things are done as it is both boring & time consuming - so just want to be 100% sure.

Thanks for the help!
squirrel
9 years ago
bbobb, tha_watcha, and Jaben are the only developers who have access to the 'master' source branch. It's been that way for several years now. When I run builds on my Visual Studio it takes all of about 2 minutes to build the entire solution and test --

Anytime I have enhancements, I actually post the code here on the forums and let them include it if they are going to -- then it appears in a day or so in my SVN and it's added.

While the application is open source, it is pretty tied down with who has direct access to adding to the source packages. I think a small part of that is that YAF does have offerings for commercial clients, and as such - any code changes have to go through testing purposes with Jaben (and bbobb as he is the SQL master here) - between them, they perform most of the code testing initially before adding to GIT - then it goes through the Alpha/Beta/RC process as most other apps do normally.

I don't know about GIT bit with Tortoise, there are files I set that are not to be compared against the master (such as the SLN and CSPROJ files) - then Tortoise doesn't complain when I make changes.

As an example, when I do my work, I have my local repository, and I have a development tree outside of that. Any changes I make I do to my dev tree. When they successfully compile and run, I'll submit changes to either the forum or submit a pull request with the changed files -- and then they will appear (if used) in my SVN later on. This keeps my 'local development' untangled from the repository while still allowing me access to everything. I understand how this can make more work - but in the end, I believe much of it is done to protect the integrity of the source code.

Jaben, tha_watcha, and bbobb may further clarify or have more solutions than I do. I'm not a part of the development team directly - I'm in the support area - but I do from time to time post patches to help them out where I can --

If you're looking to join the dev team directly, you'll have to get with Jaben as he's the current (and longtime) project leader - he's the only one who can add more devs to the team that I know of, and I don't know what his rules are for taking on more devs. I know he's definitely open to the discussion - just that he's beyond busy lately.

Hope this helps, and if there's more I can do - let me know --

If you can't find it using the forum search, try my signature link -- searches this site using Google: Google is my Friend 
tirion
  • tirion
  • 50.2% (Neutral)
  • YAF Forumling
9 years ago
Yeah - thanks for your detailed answer - it's in line with what I expected.

I definitely don't expect/want to have access to master tree or whatever - just want to make sure that I develop in a way that's compatible to what other guys are doing. I just don't want to waste time figuring out solution on my own that may prove to be incompatible to what other devs are doing.

Thanks again and I guess I'll just wait for Jaben's response.
tha_watcha
  • tha_watcha
  • 100% (Exalted)
  • YAF.NET Project Lead 🤴 YAF Version: 3.0.3
9 years ago
In GIT you can fork our repository and push your changes in to it. From there you can submit a pull request

https://help.github.com/articles/creating-a-pull-request 
tirion
  • tirion
  • 50.2% (Neutral)
  • YAF Forumling
9 years ago
Originally Posted by: tha_watcha 

In GIT you can fork our repository and push your changes in to it. From there you can submit a pull request

https://help.github.com/articles/creating-a-pull-request 



Again - I know basics - I'm not someone that's just starting to develop in ASP.NET & using Git/source control software.

What I don't get is HOW EXACTLY are you dealing with stuff that's is specific to development environment? I mean just opening the solution creates some automatic changes thanks to SVN information being embedded into SLN file. The noobish way to deal with it is to just to add local .gitignore - and I know how I would do it. However, I presume that the guys who are actively contributing to the source must have some better way - considering that local .gitignore would result with bunch of problems down the road (like I add some file to the project and then need to merge .csproj file with the on the server that's been changed in the meantime).

P.S. The thing that I am mentioning here is applied for forking also (considering that just cloning repo to your local machine could be look at as a "fork") - I would need to manually build pull request which is cumbersome if I plan on pulling the stuff you do weekly.
Jaben
  • Jaben
  • 100% (Exalted)
  • YAF Developer Topic Starter
9 years ago
@tirion: there is no magic solution to merging and dealing with different code changes. The fork system is actually quite excellent in that you can choose when and how you merge your changes. That is my recommendation, yes.

Not sure you concern with your local repo -- you are not allow to "commit" anything, anyway -- so there nothing to "ignore" as your commits would be local.
YAF Logo Copyright © YetAnotherForum.NET & Ingo Herbote. All rights reserved
About Us

The YAF.NET is an open source .NET forum project. YAF.NET is supported by an team of international developers who are build community by building community software.

Powered by Resharper Donate with PayPal button