• published the article WikiCreole markup

    Hello, friends.

    Up until now, CurseForge and WowAce (since the transformation to the CurseForge codebase) have used "Curse Wiki" as the default wiki type. We have implemented the feature-rich WikiCreole markup and plan to make it the default on Monday (March 9, 2009).

    What's wrong with Curse Wiki?

    Curse Wiki is a custom implementation of the MediaWiki markup. The code we use for it is rife with issues, including lack of readability, inherent slowness, potential security issues and general bugs, and lack of extensibility.

    The developer of the Curse Wiki format has no longer been with us here at Curse, Inc. for a year now, and no one can read his code, and when anyone tries, it's impossible to cringe.

    Why choose WikiCreole over something else?

    We agree with the philosophy of WikiCreole, the code is clean and readable, it's fast enough for our use cases, and the library we use (CreoleParser) is very extensible.

    Due to the awesome extensibility, we were able to add nice relative links, e.g. [[Some page]] or [[Project:Some page]] rather than forcing full links as we have. We also support images nicely, e.g. {{4}} or {{Some image}} or {{Project:4}} (and so forth).

    We were also able to add syntax highlighting with the <<code>> macro.

    print("Syntax highlighting is awesome: " .. 42)
    

    See Markup Types / WikiCreole for the full syntax examples of WikiCreole.

    Will I still be able to use Curse Wiki?

    Yes, this will still be an option, just not the default one.

    We may eventually disable creating new pages/comments using Curse Wiki (likely if a security issue arises), but we would still allow old pages using it to continue to be editted as Curse Wiki.

    Are you getting rid of any of the other markup formats?

    Probably not. We've cleaned up the code for plain text and Safe HTML, and made BBCode a thin wrapper around WikiCreole, so we see no reason to remove those three at all.

    We may eventually support more formats, such as Textile, Markdown, Restructured Text, etc.

    Posted in: WikiCreole markup
  • published the article Downtime Monday (Done)

    Hey all, we're planning on having a downtime on Monday, January 19, 2009. Planning on starting around 10 AM CST and it shouldn't last more than a few hours.

    This will affect the repositories and the website, but not forums.

    We're planning on migrating from MySQL to PostgreSQL, since we've had just far too many issues with InnoDB locking up the database making the entire site inaccessible for minutes at a time, and we can't afford to lose transactions and ACID compliance by switching to MyISAM. Here's hoping it fixes the problem.

    Addendum: And we're all done. Very anti-climactic, if you ask me.

    Posted in: Downtime Monday (Done)
  • published the article Forum maintenance (done)

    Hello, friends.

    We're doing some maintenance on the forums system, moving boxes around in the server room and all. We expect the downtime to last no more than a couple hours.

    To pass the time, here's a kitty:

    Addendum: We're all done.
    Posted in: Forum maintenance (done)
  • published the article Downtime again. (Done)

    Hey beautiful people, we're gonna have another downtime today.

    Hopefully this won't take too long, but it's always hard to gauge.

    We're transferring the DB back to the real DB server, which has been upgraded to a newer OS as well as 64-bit, so we can finally use 8 GiB of RAM instead of just 2 GiB.

    Addendum: And we're done and everything went smoothly.

    Posted in: Downtime again. (Done)
  • published the article Downtime's over!

    Hello friends.

    We've been having some DB issues with wowace and curseforge, so we're going to be doing some tinkering on the DB server.

    I'm sure some of you have noticed the long pauses when trying to visit pages on wowace and/or curseforge, and our hope is to fix this issue.

    We predict that the downtime shouldn't be more than a few hours, but it's always hard to gauge these things.

    We also plan to have another downtime soon to finish the task, though probably not today.

    Wait, I'll fix it

    Addendum:

    We're back up, people. It only took half an hour, which we're very pleased with. There still will be another downtime later, but probably not today.

    Posted in: Downtime's over!
  • published the article Packager Enhancements
    Yesterday we launched a series of enhancements to the packager. Here is a quick rundown of the new features:
    • You can now include a subfolder from mercurial and git repositories as externals.
    • You can now include tags from mercurial and git repositories as externals.
    • You can now specify to use the latest tag of a project as an external.

    These features are somewhat embodied in the following example:
       externals:
           libs/LibStub: svn://svn.wowace.com/wow/libstub/mainline/tags/1.0
           libs/CallbackHandler-1.0: svn://svn.wowace.com/wow/callbackhandler/mainline/trunk/CallbackHandler-1.0
           libs/LibMonkey-1.0:
               url: svn://svn.curseforge.net/wow/libmonkey-1-0/mainline/trunk
           libs/LibBanana-1.0: 
               url: git://git.curseforge.net/wow/libbanana-1-0/mainline.git
               tag: 1.2
           libs/LibSuit-2.0:
               url: http://hg.curseforge.net/wow/libsuit-2-0/mainline
               tag: latest
           libs/LibSubThingy-2.13: http://hg.curseforge.net/wow/libthingy-2-0/mainline/libsubthingy-2.13
    
    These features have been tested, however issues may still exist, please notify us immediately if there are any issues. Also if the examples aren't clear enough let me know ;)
    Posted in: Packager Enhancements
  • published the article Per-project role-based access control system

    Hey, beautiful people.

    I've been working on a per-project role-based access control system, and it's finally in place now. You may have guessed yesterday when the site was having some downtime that something was happening, and we were working out the final kinks of the system then.

    Side note: Technically, this is per-repository and not per-project, but the mainline repository defines users' permissions in a project.

    What this means:

    Instead of just Project leader and authors, we can have multiple roles, e.g. Translators, QA, Documenters, Authors, Managers, and really anything that we can think of.

    The way the system works:

    There is a set of roles that we administrators define. Each role has a set of permissions attached to it.

    Each repository has a set of role assignments which grant a user to one or more roles (Yes, you could be both QA and a Translator at the same time).

    Each user would then have a set of permissions on a repository defined by the set of permissions of all their roles on that repository.

    Here's the set of permissions:

    • Abandon project
    • Clone closed repository
    • Commit to code repository
    • Delete repository
    • Manage english project translations
    • Manage files
    • Manage project components
    • Manage project pages
    • Manage project reward splits
    • Manage project milestones
    • Manage project images
    • Manage project tickets
    • Manage project ticket templates
    • Manage relationships
    • Manage remote sync
    • Manage roles
    • Merge project
    • Resubmit project for approval
    • View code repository
    • Manage repository
    • Manage project

    As it stands, we only have Manager (which has all permissions) and Author (which doesn't have as many permissions).

    We do want to work on adding more roles, but we need good ideas on what is wanted as far as that is concerned. So if you have some good ideas, feel free to contact us or just leave a comment here.

    Currently, all managers are also authors, and any new projects will have the owner be both a manager and an author. Note that the manager can unassign himself as an author.

    Posted in: Per-project role-based access control system
  • published the article Author Rewards Program Launching Soon

    Hello, friends.

    We're going to be launching a program to award authors with redeemable points. You'll be able to spend the points on game cards or similar things.

    You have to opt in to receive points. You can do this at http://www.curseforge.com/home/rewards-program/....

    This is still very much a work in progress, so you won't see points accumulating until we officially launch this. There also will be a wait between when points accumulate and when you can spend them at the store.

    Points will be distributed based on popularity of the project. We're probably not going to reveal the exact algorithm to prevent gaming the system. We will investigate allegations of gaming the system and are more than happy to ban those who try to cheat. This is a nice pat on the back for all the authors who help drive traffic to curse, a way to say thanks, and if everything goes smoothly, make it so authors don't have to pay for their own WoW accounts, and for the addons that drive the most traffic to the site (Omen, QuestHelper, etc.), some extra perks.

    Kaelten and I (ckknight) are doing the coding on the rewards system and the eventual store. No, we didn't sneak in code to steal fractions of points from people just like in Superman 3, no matter how tempting.

    Posted in: Author Rewards Program Launching Soon
  • published the article Introducing Email Subscriptions

    In a continued effort to make the sites content more accessible and usable we're launching update subscriptions via email. Until recently keeping tabs on your project (or other projects you're interested in) has been a fairly manual task. Now we have two systems in place to make this easier.

    The first being the RSS feeds we launched last week, but now in addition to them we have a email based subscription service.

    A quick rundown of how they work:

    1. You subscribe via a project's Manage Subscriptions url (i.e. CurseForge.com's Subscriptions) to any of the available subscriptions.

    2. Each subscription has delivery and frequency options.

    3. You will then receive updates as you've specified.

    A couple of notes:

    • "Real Time" currently has a slight bit of entropy in it, if this is confusing or undesirable it can be moved.
    • "Suprise Me" is a random time, its more of a 'fun' feature but still should be useful.
    • It is recommended that you put [email protected] in your address book or contact list to help ensure that you receive updates to your inbox. This is especially important for certain services such as Hotmail and Windows Live Mail.
    • There are currently three subscriptions available. with more to be introduced this week.
      • Files Updates
      • Comments on the Project
      • Ticket Updates (including comments)

    Other future plans include:

    Please vote on the above linked tickets to signify their importance to you.


    Posted in: Introducing Email Subscriptions
  • published the article RSS, Repositories, and More!

    Well, we've had a busy week.

    Here is a quick rundown of the features we've hammered out over the last week.

    Ticket System Enhancements

    • Components - You can now subdivide your project into components to organize your tickets.
    • Milestones - You can keep track of what version of your project things get fixed in.

    RSS Feeds

    On a per project basis there are now multiple rss feeds.

    • Latest Images
    • Latest Files
    • Latest Tickets
    • Latest Pages
    • Latest Comments

    There is also a general comments RSS feed at comments.rss

    Open Repositories

    These are special repos that should be accessible (both read and write) to any member who has activated their repository account.

    SVN Access

    Ok, so we know that doing "svn+ssh://" really, really blows! Especially on windows. So we've added a new, additional, way of accessing the SVN repos. You can now use svn:// directly with username/password auth.

    Note! doing svn:// is not as secure as svn+ssh. However, it is much easier to use with tools like TortoiseSVN supporting it with no additional setup.

    Your password will never be submitted over the wire in plain text so it's secure in transit, however, your SVN password WILL be stored in PLAIN TEXT on the server.

    Because of the potential security risk we've created a separate SVN password. Your site login password will never be used for SVN authentication. We strongly suggest that you use a svn password that is meaningless and is not used to secure anything valuable.

    We attempted to find a way around doing it this way, but we were not able to. Please notify us if you know of one. Do note though mod_dav_svn in its current form isn't really suitable to manage our layout. We'd need something along the lines of a great-grandparent path attribute in order to make its deployment feasible. (volunteers?)

    You can set this password via this link. The link is located on your profile page under the Profile Actions dropdown.

    More Packager Options

    In addition to the open repository option we've added another option. You can now specify how the automatic packager behaves towards your project. You can tell it to only package releases, or not at all, to package beta and releases, or everything.

    Poll

    As many of you've noticed, we've added a quick poll system to the front page. This is more of a 'for fun' feature than anything else, however there may be times where we want to ask user opinions about what you'd like to see.

    I think that's just about everything. However, if you think we're not doing something quite right or you'd like to see something we don't have yet, please let us know!

    Posted in: RSS, Repositories, and More!
  • published the article Projects now require approval

    Previously only files required manual approval, but since we've noticed a trend of empty projects showing up or attempts to be malicious, we've added manual approval for projects as well.

    What does this mean to you?

    Basically, you have to wait for an administrator to approve your new project (and as usual, your files). We're available pretty much all the time, though. So it shouldn't be a problem. If you feel we're slow, feel free to stop by IRC and poke us. Try poking Zyuu first, if it's regarding approvals.

    IRC Information: #CurseForge @ irc.freenode.net

    Posted in: Projects now require approval
  • published the article Knowledge Base

    We've added a Knowledge Base to CurseForge. You find it at the right side of "My Profile" in the menu.

    We will constantly add more information to our Knowledge Base, if you're new to CurseForge -- please take your time and browse the Knowledge Base to get familiar with how things work.

    Posted in: Knowledge Base
  • published the article Check out our basic FAQ!

    We've created a basic FAQ that might have the answer(s) to your question(s). Check it out!

    We'll be adding a link to it on the site soon(tm).

    You might also want to check out the following two articles:

    Posted in: Check out our basic FAQ!